Javascript 过滤对象数组中的重复项并添加计数
我有一个包含对象的数组,我想过滤、排除重复项并增加数量 这就是我正在执行的删除重复项的操作:Javascript 过滤对象数组中的重复项并添加计数,javascript,json,Javascript,Json,我有一个包含对象的数组,我想过滤、排除重复项并增加数量 这就是我正在执行的删除重复项的操作: curCart =[{sku:1, name:product1, qty:1 price:5}, {sku:1, name:product1, qty:1 price:5}, {sku:1, name:product1, qty:1 price:5}, {sku:2, name:product2, qty:1 price:10}] [...new Map(curCart.map((item) =>
curCart =[{sku:1, name:product1, qty:1 price:5},
{sku:1, name:product1, qty:1 price:5},
{sku:1, name:product1, qty:1 price:5},
{sku:2, name:product2, qty:1 price:10}]
[...new Map(curCart.map((item) => [item.sku, item])
).values(),
] // returns [{sku:1, name:product1, qty:1 price:5},{sku:2, name:product2, qty:1 price:10}]
我的代码可以像预期的那样工作,只是过滤掉重复的代码。我如何循环它以增加数量?您可以使用array.reduce。。例:
const curCart=[
{sku:1,名称:'product1',数量:1,价格:5},
{sku:1,名称:'product1',数量:1,价格:5},
{sku:1,名称:'product1',数量:1,价格:5},
{sku:2,名称:'product2',数量:1,价格:10}
];
常数x=curCart.reduce(函数(acc、curVal、curIdx、arr){
const dupIdx=acc.findIndex(el=>el.sku==curVal.sku);
如果(dupIdx>=0){
acc[dupIdx]。数量=acc[dupIdx]。数量+曲线数量;
}
否则{
加速推力(曲线);
}
返回acc;
}, []);
控制台日志(x)代码>代码不返回任何内容,因为它有语法错误。通过使用编辑器中的按钮,可以大大减少您获得答案的机会。