Сумма выбора — Javascript

#javascript #data-structures

Вопрос:

Если у меня есть массив объектов, подобных этому:

 obj = [{id:1,value:2},{id:1,value:3},{id:2,value:8}]
 

Как я могу суммировать значения с одним и тем же идентификатором и вернуть другой массив с итогами по каждому индексу?

Комментарии:

1. Уменьшение массива………

Ответ №1:

Вы можете использовать сокращение для достижения этой цели

 const obj = [{
  id: 1,
  value: 2
}, {
  id: 1,
  value: 3
}, {
  id: 2,
  value: 8
}, {
  id: 3,
  value: 4
}, {
  id: 2,
  value: 1
}]

const result = Object.values(
  obj.reduce((a, { id, value }) => (((a[id] ??= { id, value: 0 }).value  = value), a), {})
);

console.log(result) 

Комментарии:

1. вы можете объяснить? Я вообще ничего не понимаю….