cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mendapatkan titik masa yang dikaitkan dengan beberapa tempoh masa dalam javascript

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
]

滿天的星座滿天的星座2809 hari yang lalu623

membalas semua(1)saya akan balas

  • 習慣沉默

    習慣沉默2017-05-19 10:33:10

    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
    }

    balas
    0
  • Batalbalas