如何连接两个数组,更新“qty”键而不重复“title”键?例子:对象1obj1 = [{ id: 0, qty: 1, title: "HEINEKEN0 350ML"}]对象2obj2 = [ { id: 0, qty: 5, title: "HEINEKEN0 350ML" }, { id: 1, qty: 1, title: "HEINEKEN0 600ML" }];我需要的输出:output = [ { id: 0, qty: 6, title: "HEINEKEN0 350ML" }, { id: 1, qty: 1, title: "HEINEKEN0 600ML" } ];
1 回答
开满天机
TA贡献1786条经验 获得超12个赞
您可以将两个数组连接在一起并Array#reduce与一个对象一起使用来存储每个标题的值。
const obj1 = [{
id: 0,
qty: 1,
title: "HEINEKEN0 350ML"
}],
obj2 = [{
id: 0,
qty: 5,
title: "HEINEKEN0 350ML"
},
{
id: 1,
qty: 1,
title: "HEINEKEN0 600ML"
}];
const res = Object.values([...obj1, ...obj2].reduce((acc,{title,qty,id})=>{
(acc[title] = acc[title] || {id,qty: 0,title}).qty += qty;
return acc;
}, {}));
console.log(res);
添加回答
举报
0/150
提交
取消