Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 过滤对象数组中的重复项并添加计数_Javascript_Json - Fatal编程技术网

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)代码不返回任何内容,因为它有语法错误。通过使用编辑器中的按钮,可以大大减少您获得答案的机会。