recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment obtenir les points temporels associés à plusieurs périodes en javascript

Supposons qu'il y ait les périodes suivantes

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

En ce moment, 03:00就是一个时间点,因为03:00都包含在每个时间段内,14:00或者13:36 est un moment précis

Alors, comment obtenir ce nœud associé sur plusieurs périodes ? Tout ce qu'il faut, c'est un nœud temporel.

Ou comment regrouper ces périodes

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

[
12h30 - 14h00
13h36 - 15h00
]

滿天的星座滿天的星座2752 Il y a quelques jours587

répondre à tous(1)je répondrai

  • 習慣沉默

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

    Regroupez simplement les heures du même intervalle en un seul groupe. C'est très simple. Triez-les d'abord, puis recherchez l'heure qui commence après la fin de la période précédente.

    Supposons que l'heure soit stockée au format numérique (nombre de millisecondes à partir du 1er janvier 1970 00:00:00 UTC)

    Structure des périodes :

    {
      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
    }

    répondre
    0
  • Annulerrépondre