Учитывая следующий массив:
const activities = [
{ type: 'car', duration: 60 },
{ type: 'car', duration: 140 },
{ type: 'ferry', duration: 60 },
{ type: 'car', duration: 100 }
];
Каков наилучший подход для объединения последовательных объектов с type: 'car'
при сохранении порядка элементов?В этом примере желаемый результат будет следующим:
const activities = [
{ type: 'car', duration: 200 }, // merged
{ type: 'ferry', duration: 60 },
{ type: 'car', duration: 100 } // this stays
];
Массив создается динамически, а пример упрощен для наглядности.
После нескольких попыток мне удалось написать рабочий кодиспользуя комбинацию do/while
, findIndex()
, slice()
и reduce()
для заполнения нового массива.Код кажется громоздким и включает в себя множество операций.
Мне остается только подумать, есть ли простой способ (которого я не вижу) для решения этой проблемы ... любые предложения приветствуются!