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