javascript - 合并单个对象数组中的对象
问题描述
我有一个包含多个对象的数组,如下所示
[{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"}]
对此的任何帮助将不胜感激。谢谢
解决方案
您可以使用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))
推荐阅读
- javascript - Javascript:拒绝包含多于一列的 csv
- r - 根据 R Shiny 中的复选框选择创建绘图
- hazelcast-jet - 具有 2 个传入边缘的处理器 - 当在一个边缘返回 false 时,继续从同一边缘重新处理,并且永远不要在另一边缘处理新项目
- c# - 带有属性的嵌套列表的反序列化
- javascript - 如何使用javascript从一个日期输入字段中获取日期值并将其放入另一个日期字段?
- javascript - Oninvalid 不起作用
- ios - 无法创建启用了 HealthKit 功能的应用
- entity-framework - 实体框架迁移到多个数据库
- machine-learning - 一类 SVM 无法对训练集进行分类
- sql - SQL 序列中的下 N 个数字