【发布时间】:2021-11-25 09:25:01
【问题描述】:
如何检测MY CART中是否存在所选产品代码,如果产品代码存在,则不要将其插入MY CART数组中,而是将所选产品的数量添加到MY CART中的现有产品中。
我编写的代码会将所有选择的产品添加到我的购物车中,这对于看到所有相同的产品堆积起来并不是很有效。如果产品存在,最好有这个功能来汇总数量。
var cartlist= new Array();
$(".addtocart").on('click', function() {
var prdcode = $("#prod_code");
var description = $("#prod_desc");
var qty= $("#prod_qty");
var itemlist = new Array();
itemlist.push(prdcode );
itemlist.push(description );
itemlist.push(qty);
cartlist.push(itemlist);
for (var i = 0; i < cartlist.length-1; i++) {
if(cartlist[i+1] === cartlist[i]){
continue;
//action to sum qty if code exist in cart
}
}
});
MY CART
0: Array(3){
0: "ABC123"
1: "DESCRIPTION FOR ABC123"
2: "1"
}
1: Array(3){
0: "DEF456"
1: "DESCRIPTION FOR DEF456"
2: "2"
}
TO BE ADDED IN CART
0: Array(3){
0: "ABC123"
1: "DESCRIPTION FOR ABC123"
2: "1"
}
1: Array(3){
0: "GHI789"
1: "DESCRIPTION FOR GHI789"
2: "1"
}
EXPECTED OUTCOME (AFTER ADDED IN CART)
0: Array(3){
0: "ABC123"
1: "DESCRIPTION FOR ABC123"
2: "2"
}
1: Array(3){
0: "DEF456"
1: "DESCRIPTION FOR DEF456"
2: "2"
}
2: Array(3){
0: "GHI789"
1: "DESCRIPTION FOR GHI789"
2: "1"
}
【问题讨论】:
-
循环遍历购物车,数组find(),如果find找到数组,增加。如果它不推它。
-
大量的solutions here 而this answer 似乎最接近你需要的一些小调整。