Есть массив объектов. Как сгруппировать последовательности так сказать. Если следующий элемент по Id на 1 больше то последовательность эта же. Если на 2 больше - то создается новый массив и этот и следующие элементы уже пушатся туда и тд. Если Id соседей больше Id элемента на 2 - то он создаст массив с самим собой и ключем, равным его Id. В остальных случаях ключ будет равен первому и последнему Id элементов массива.
Можно использовать Lodash если знаете хитрый метод или связку. До меня пока что не доходит.
const data = [
{id: 1},
{id: 2},
{id: 3},
{id: 4},
{id: 7},
{id: 9},
{id: 10},
{id: 12},
{id: 14},
{id: 15},
{id: 16}];
const result = [
"1-4": [
{id: 1},
{id: 2},
{id: 3},
{id: 4}],
"7": [
{id: 7}],
"9-10": [
{id: 9},
{id: 10}],
"12": [
{id: 12}],
"14-16": [
{id: 14},
{id: 15},
{id: 16}]];