Объединение объектов в одном массиве объектов - PullRequest
0 голосов
/ 26 августа 2018

У меня есть массив с несколькими объектами, как показано ниже

[{Name: "Product A", Qty: "5"}, {Name: "Product B", Qty: "2"}, {Name: "Product A", Qty: "6"}]

, и мне было интересно, как я могу объединить значения полей QTY объекта в связанном продукте NAME, чтобы создать новый массив, подобный показанному ниже:

[{Name: "Product A", Qty: "11"}, {Name: "Product B", Qty: "2"}]

Любая помощь с этим будет принята с благодарностью.Спасибо

1 Ответ

0 голосов
/ 26 августа 2018

Вы можете использовать reduce для создания одного объекта и получения значений с помощью Object.values.

const data = [{Name: "Product A", Qty: "5"}, {Name: "Product B", Qty: "2"}, {Name: "Product A", Qty: "6"}]

const result = data.reduce((r, {Name, Qty}) => {
  if(!r[Name]) r[Name] = {Name, Qty: +Qty};
  else r[Name].Qty += +Qty;
  return r;
}, {})

console.log(Object.values(result))
...