-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtime_sch.js
More file actions
41 lines (35 loc) · 968 Bytes
/
time_sch.js
File metadata and controls
41 lines (35 loc) · 968 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
const times = [
{ startTime: 0, endTime: 1 },
{ startTime: 3, endTime: 5 },
{ startTime: 4, endTime: 8 },
{ startTime: 10, endTime: 12 },
{ startTime: 9, endTime: 10 },
{ startTime: 2, endTime: 10 },
];
const mergeRanges = (unmerged) => {
let sortedRanges = sortTime(unmerged);
let mergeRange = [];
sortedRanges.map((period, i) => {
if (
i < times.length - 1 &&
period.endTime >= sortedRanges[i + 1].startTime
) {
mergeRange.push({
startTime: [period.startTime],
endTime: [sortedRanges[i + 1].endTime],
});
sortedRanges.filter((ex) => ex !== sortedRanges[i + 1]);
console.log("sortedRanges", sortedRanges);
console.log("mergeRange", mergeRange);
}
});
// return mergeRange;
};
const sortTime = (time) => {
let sortedObj = [...time];
sortedObj.sort(function (a, b) {
return a.startTime - b.startTime;
});
return sortedObj;
};
console.log(mergeRanges(times));