【发布时间】:2019-03-18 21:48:38
【问题描述】:
我有一个菜单系统,如果某些商品出现在购物车中,我有一些代码供结帐系统识别交易/折扣。
这是目前为止的代码:
var shampoo = false;
var dye = false;
var conditioner = false;
for (var i in cartArray) {
switch (cartArray[i].name) {
case 'Pantene Pro-V':
drinks = true;
break;
case 'Red Dye':
chicken = true;
break;
case 'Herbal Conditioner':
kebab = true;
break;
}
if (shampoo && dye && conditioner) {
console.log("yes");
// shoppingCart.removeItemFromCartAll(cartArray[i].name);
// window.location.reload(true);
break;
}
}
if (!shampoo || !dye || !conditioner) {
console.log("no");
}
控制台日志在完整的随机购物车中显示“是”,所以这是肯定的,但我尝试将这三个项目作为一个组一起删除,但它不起作用。
这是我上面删除功能的代码:
obj.removeItemFromCartAll = function(name) {// removes all item name
for (var i in cart) {
if (cart[i].name === name){
cart.splice(i,1);
break;
}
}
saveCart();
};
我尝试插入此代码:
shoppingCart.removeItemFromCartAll(cartArray[i].name);
在每个箱子下面,但它最终会在购物车中单独移除物品,而不是三个一组。
这是控制台的样子(数组对象):
yes
(4) [{…}, {…}, {…}, {…}]
0: {name: "Pantene Pro-V", price: 2.5, count: 1, total:
"2.50"}
1: {name: "Red Dye", price: 4, count: 1, total: "4.00"}
2: {name: "deodorant", price: 2.5, count: 1, total: "2.50"}
3: {name: "Herbal Conditioner", price: 1, count: 1, total: "1.00"}
length: 4
__proto__: Array(0)
请帮忙。谢谢。
顺便说一句,最后我想删除这三个并从菜单中将另一个项目添加到购物车中(比如以折扣价包含这三个的包裹......仅供参考)。
编辑 - 在这里注释掉这部分
shoppingCart.removeItemFromCartAll(cartArray[i].name);
删除购物车中的最后一项并用 splice 方法替换删除删除整个购物车并破坏购物车系统
【问题讨论】:
标签: javascript arrays object if-statement switch-statement