@ffrage

Как получить объект с суммой значений других объектов?

Всем привет!

Есть массив объектов:

const arr = [
    {name: 'a', number: 5},
    {name: 'b', number: 10}
];

Как я могу, перебрав этот массив, получить объект с суммой значений этих ключей?
Ключей и объектов может быть много, поэтому желательно не создавать кучу новых переменных.

{name: 'ab', number: 15}

.
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
user_of_toster
@user_of_toster
const res = arr.reduce((prev, cur) => ({
    name: prev.name + cur.name,
    number: prev.number + cur.number,
}));

console.log(res);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
0xD34F
@0xD34F Куратор тега JavaScript
arr.reduce((acc, n) => {
  Object
    .entries(n)
    .forEach(([ k, v ]) => acc[k] = acc.hasOwnProperty(k) ? acc[k] + v : v);

  return acc;
}, {})
Ответ написан
Tom_Xor
@Tom_Xor
const result = {}
for (let i = 0; i < arr.length; i++)
    for (const key in arr[i]) arr[i].hasOwnProperty(key) &&
         (result[key] = result.hasOwnProperty(key) ? result[key] + arr[i][key] : arr[i][key])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы