例如 :
[{id: "123",qty: "3",sku: "ADD"},{id: "456",qty: "2",sku: "ABC"},{id: "789",qty: "4",sku: "ABC"}]
变成
[{id: "123",qty: "3",sku: "ADD"},{id: "456,789",qty: "6",sku: "ABC"}]
你题目的解答代码如下:
var arr1 = [{id: "123",qty: "3",sku: "ADD"},{id: "456",qty: "2",sku: "ABC"},{id: "789",qty: "4",sku: "ABC"}]
var d = {};
var arr2 = [];
arr1.forEach(function(v, i){
if (d[v.sku]) {
d[v.sku].id += ","+v.id;
d[v.sku].qty = parseFloat(d[v.sku].qty)+parseFloat(v.qty)+"";
} else {
d[v.sku] = v;
arr2.push(v);
}
});
console.log(arr2);
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
定义一个新的空数组,循环放入push到新的数组,每次push之前都循环判断一次新数组中是否已经存在sku相同的值。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!