合并数组里面的数据增加重复数量标记

var arr=[{"itemId":null,"basicItemId":1228,"itemName":"维他柠檬…10ml","unit":null,"costPrice":null,"typeId":null},
             {"itemId":null,"basicItemId":1228,"itemName":"维他柠檬…10ml","unit":null,"costPrice":null,"typeId":null},
             {"itemId":null,"basicItemId":1238,"itemName":"红牛","price":5.98,"icon":"","standard":"250ml","unit":null,"costPrice":null,"typeId":null}]
 
var items = [];
function addItem(newItem){
 
    var exists = false;
    for (var i = 0; i < items.length; i++) {
      var item = items[i];
    if (item.basicItemId == newItem.basicItemId) {
   exists = true;
    item.num = item.num+1;
   break;
   }
}
if(!exists){
 
newItem.num = 1;
items.push(newItem);
}
 
}
 
 
$.each(arr,function(index,val){
   addItem(arr[index])
 
})
 
console.info(items);
 
 
 
整理后:
function add (arrArr) {
var shopCarItem = []
function addItem(newItem, exists = false) { //处理重复数据
shopCarItem.forEach(item => {
if (item && item.basicItemId == newItem.basicItemId) {
exists = true;
item.num += 1;
item.totalPrice = item.num * item.price //增加商品总价字段
}
});
if (exists) {
return
} else {
newItem.num = 1;
newItem.totalPrice = newItem.num * newItem.price //增加商品总价字段
shopCarItem.push(newItem);
}
}
arrArr.forEach((item, key) => {
addItem((arrArr[key]))
})
console.log(shopCarItem);
}
add(arrArr)
 

转载于:https://www.cnblogs.com/zhuwu/p/8116847.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值