Я пытаюсь прочитать массив объектов (это время начала/окончания) и объединить два (или более) тех времен, если они вернутся назад.Loop and Combine Time Ranges в массиве
ie. время окончания первого объекта совпадает с временем начала следующего объекта. Если они есть, соедините их. Затем проверьте вновь объединенные объекты конец времени со следующим объектом в массиве
Вот упрощенный массив раз:
var times = [
{
start: 1,
end: 2
},{
start: 2,
end: 3
},{
start: 4,
end: 5
},{
start: 6,
end: 7
},
]
Я хотел бы, что (или есть дифф массив) для вывода, как показано ниже :
var newTimes = [
{
start: 1,
end: 3
},{
start: 4,
end: 5
},{
start: 6,
end: 7
},
]
Это сложнее, если есть 3 раза подряд.
var threeTime = [
{
start: 1,
end: 2
},{
start: 2,
end: 3
},{
start: 3,
end: 5
},{
start: 6,
end: 7
},
]
выше должен превратиться в:
var newThreeTimes = [
{
start: 1,
end: 5
},{
start: 6,
end: 7
},
]
оригинальный массив времен всегда будет отсортирован от старейшего (наималейшего времени начала) до новейшего (наибольшего времени старта). Выход не должен быть в каком-либо конкретном порядке. Все объекты времени будут моментом.
Может кто-нибудь помочь мне решить эту проблему?