Bagaimana untuk mendapatkan titik masa yang dikaitkan dengan beberapa tempoh masa dalam javascript
滿天的星座
滿天的星座 2017-05-19 10:31:10
0
1
573

Andaikan terdapat tempoh masa berikut

00:00 - 03:00
03:00 - 03:30
01:00 - 03:20
12:30 - 14:00
13:36 - 15:00

Pada masa ini, 03:00就是一个时间点,因为03:00都包含在每个时间段内,14:00或者13:36 adalah titik masa

Jadi, bagaimana untuk mendapatkan nod yang berkaitan ini dalam beberapa tempoh masa? Apa yang diperlukan hanyalah satu nod masa.

Atau bagaimana cara saya mengumpulkan tempoh masa ini

[
00:00 - 03:00
03:00 - 03:30
01:00 - 03:20
]

[
12:30 - 14:00
13:36 - 15:00
]

滿天的星座
滿天的星座

membalas semua(1)
習慣沉默

Hanya kumpulkan masa dalam selang yang sama ke dalam satu kumpulan. Cuma susunkannya dahulu dan kemudian cari masa yang bermula lewat daripada penghujung tempoh masa sebelumnya.

Andaikan masa disimpan dalam format Nombor (bilangan milisaat dari 1 Januari 1970 00:00:00 UTC)

Struktur tempoh masa:

{
  start: 1493125454502,
  end: 1493125454516
}
function sortTime (times) {
  if (times.length <= 1) { return times }

  times = times.sort((a, b) => a.start !== b.start ? a.start - b.start : a.end - b.end)

  let result = []
  let beginIndex = 0

  for (let i = 1; i < times.length; i += 1) {
    if (times[i].start > times[i - 1].end) {
      result.push(times.slice(beginIndex, i))
      beginIndex = i
    }
  }

  if (beginIndex !== times.length) {
    result.push(times.slice(beginIndex, times.length))
  }

  return result
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan