javascript如何获取多个时间段关联的时间点

假设有如下时间段

00:00 - 03:00

03:00 - 03:30

01:00 - 03:20

12:30 - 14:00

13:36 - 15:00

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

那么,如何在多个时间段内获取这个关联节点呢?只需要一个时间节点就可以了。

或者说我如何将这些时间段分组

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

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


30秒到达战场
浏览 615回答 1
1回答

翻过高山走不出你

就是把同个区间的时间分在一组吧,很简单,先排好序,再找出开始比前一个时间段的结尾要后的就行。假设时间以 Number 方式存(距离 1 January 1970 00:00:00 UTC 的毫秒数)时间段结构:{&nbsp; start: 1493125454502,&nbsp; end: 1493125454516}function sortTime (times) {&nbsp; if (times.length <= 1) { return times }&nbsp; times = times.sort((a, b) => a.start !== b.start ? a.start - b.start : a.end - b.end)&nbsp; let result = []&nbsp; let beginIndex = 0&nbsp; for (let i = 1; i < times.length; i += 1) {&nbsp; &nbsp; if (times[i].start > times[i - 1].end) {&nbsp; &nbsp; &nbsp; result.push(times.slice(beginIndex, i))&nbsp; &nbsp; &nbsp; beginIndex = i&nbsp; &nbsp; }&nbsp; }&nbsp; if (beginIndex !== times.length) {&nbsp; &nbsp; result.push(times.slice(beginIndex, times.length))&nbsp; }&nbsp; return result}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript