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

本文介绍了一种处理购物车商品添加的JavaScript方法。该方法可以检查商品是否已存在于购物车中,并根据检查结果更新商品数量或直接将新商品添加到购物车里。此外,还实现了商品总价的计算。
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值