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)