我想在数量达到1件时,用“-”键清除加入购物车的产品,希望有人能帮我,我已经找了两天的解决方案了,先谢谢了。
//changeNumber
function changeNumber(action, id){
cart = cart.map((item)=> {
let = oldNumber = item.numberOfUnits;
if(item.id === id){
if (action === "meno" && item.numberOfUnits >1) {
oldNumber--
} else if (action === "piu") {
oldNumber++
}
if (action === "meno" && item.numberOfUnits === 1){
console.log("delete")
console.log(cart.splice(item.id, 1));
}
updateCart();
}
return {
...item,
numberOfUnits: oldNumber,
}
});
updateCart();
}
2条答案
按热度按时间pobjuy321#
map函数不允许在循环时删除元素。
有两种方法:
1.保存要删除内容的索引,然后在.map()之后调用
delete cart[index]
1.使用其他技术更新购物车列表**(推荐)**
技术#1
技巧2
使用对象
{id: item}
代替数组,这样就可以访问和修改特定的元素,而不必遍历所有元素。lf5gs5x22#
文档.getElementById(“电话-减号”).addEventListener(“单击”,函数(){