Помогите, пожалуйста. решить задачу
Функция должна взять массив JSON объектов со свойствами «от» и «до» и сгруппировать его по периоду времени. Если даты в массиве пересекаются, то функция должна объединить их в один период, если разные - периоды должны быть разделены.
[
{
"from":"03/01/2021",
"to":"03/05/2021"
},
{
"from":"03/04/2021",
"to":"03/10/2021"
},
{
"from":"03/07/2021",
"to":"03/20/2021"
},
{
"from":"03/20/2021",
"to":"03/30/2021"
}
]
Output: Mar 1-30
[
{
"from":"03/01/2021",
"to":"03/05/2021"
},
{
"from":"03/06/2021",
"to":"03/08/2021"
},
{
"from":"03/15/2021",
"to":"03/18/2021"
},
{
"from":"03/16/2021",
"to":"03/28/2021"
}
]
Output: Mar 1-8, 15-28
Пока вот такой есть код
var dates = [
{
"from":"03/01/2021",
"to":"03/05/2021"
},
{
"from":"03/08/2021",
"to":"03/10/2021"
},
{
"from":"03/07/2021",
"to":"03/20/2021"
}
];
var item = dates;
var index = 0;
var out = document.querySelector('#test');
for(var i = 0; i < item.length; i++){
index++;
var from_i = Date.parse(item[i].from);
var to_i = Date.parse(item[i].to);
var from_index = Date.parse(item[index].from);
var to_index = Date.parse(item[index].to);
if(from_index >= from_i && from_index <= to_i){
let updated_from = new Date(from_index);
let update_to = new Date(to_index);
console.log(updated_from);
out.innerHTML += updated_from.toDateString() + update_to.toDateString() + "<br/>";
}
}
<div id="test"> </div>