js多个时间区间怎么合并
时间: 2024-03-01 20:53:06 浏览: 139
CountMinutes
要合并多个时间区间,首先需要将这些时间区间按照起始时间排序。然后,遍历这些时间区间,如果当前时间区间的起始时间在上一个时间区间的结束时间之后,说明这两个时间区间不能合并,需要将上一个时间区间加入结果集中,然后继续遍历下一个时间区间。如果当前时间区间的起始时间在上一个时间区间的结束时间之前,说明这两个时间区间可以合并,将上一个时间区间的结束时间更新为当前时间区间的结束时间,继续遍历下一个时间区间。最后将最后一个时间区间加入结果集中即可。
以下是一个 JavaScript 实现的示例代码:
```javascript
function mergeTimeIntervals(intervals) {
if (intervals.length <= 1) {
return intervals;
}
intervals.sort((a, b) => a[0] - b[0]);
const result = [intervals[0]];
for (let i = 1; i < intervals.length; i++) {
const curr = intervals[i];
const prev = result[result.length - 1];
if (curr[0] > prev[1]) {
result.push(curr);
} else {
prev[1] = Math.max(prev[1], curr[1]);
}
}
return result;
}
```
其中 `intervals` 是一个二维数组,每个子数组表示一个时间区间,比如 `[[1, 3], [2, 6], [8, 10], [15, 18]]` 表示四个时间区间。函数返回一个合并后的时间区间数组。
阅读全文