So erhalten Sie die Zeitpunkte, die mehreren Zeiträumen in Javascript zugeordnet sind
滿天的星座
滿天的星座 2017-05-19 10:31:10
0
1
606

Angenommen, es gibt die folgenden Zeiträume

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

Zu diesem Zeitpunkt ist 03:00就是一个时间点,因为03:00都包含在每个时间段内,14:00或者13:36 ein Zeitpunkt

Wie erhält man also diesen zugeordneten Knoten in mehreren Zeiträumen? Alles, was es braucht, ist ein Zeitknoten.

Oder wie gruppiere ich diese Zeiträume

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

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

滿天的星座
滿天的星座

Antworte allen(1)
習慣沉默

就是把同个区间的时间分在一组吧,很简单,先排好序,再找出开始比前一个时间段的结尾要后的就行。

假设时间以 Number 方式存(距离 1 January 1970 00:00:00 UTC 的毫秒数)

时间段结构:

{
  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
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage