JSFiddle - React, Tailwind, and code Playground
by Dmitri Ganenco
JavaScript
var data = [{
"id": 1,
"start": "2018-10-10",
"end": "2018-11-10"
},
{
"id": 1,
"start": "2018-11-10",
"end": "2018-12-10"
},
{
"id": 2,
"start": "2018-11-22",
"end": "2018-11-30"
}
];
let result = data.sort((a, b) => new Date(a.start) > new Date(b.start)).reduce(function(r, a) {
if (!r[a.id] || r[a.id][0].id !== a.id) {
r[a.id] = r[a.id] || [];
r[a.id].push(a);
}
return r;
}, Object.create(null));
console.log(result)