首页 > 解决方案 > 合并单个对象数组中的对象

问题描述

我有一个包含多个对象的数组,如下所示

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

并且想知道如何合并相关产品名称中的对象 QTY 字段值以生成如下所示的新数组:

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

对此的任何帮助将不胜感激。谢谢

标签: javascriptarraysjavascript-objects

解决方案


您可以使用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))


推荐阅读