我有一个对象数组,该对象返回名称:字符串和数量:数字,问题是我在数组中有许多对象,它们具有相同的名称字段值,但数量值不同,所以我想显示每个对象的所有数量的总和名称重复。我的代码在这里:
const productsArray = [{ name: "lamp", quantity: 10 }, {name: "glass", quantity: 4}, {name:"lamp", quantity: 5}]
灯是重复的,但是它具有不同的数量值,因此我想将这些数量值合并为一个总数量,并且仅显示一次名称。
期望的结果
产品名称:灯产品数量:15
产品名称:玻璃杯产品数量:4
请帮忙
我可能会使用的组合reduce
,Object.entries
以及map
实现这一目标。
const productsArray = [{ name: "lamp", quantity: 10 }, {name: "glass", quantity: 4}, {name:"lamp", quantity: 5}];
const combined = productsArray.reduce((acc, el) => {
if (acc[el.name] === undefined) {
acc[el.name] = 0;
}
acc[el.name] += el.quantity;
return acc;
}, {});
const final = Object.entries(combined).map(([name, quantity]) => ({
name,
quantity
}));
console.log(final);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句