javascript - 对 Javascript 购物车应用折扣
问题描述
我正在尝试对此文件/购物车应用折扣。我能够使折扣功能正常工作,但它会不断地删除总数,而不是只删除一次。有什么建议么?
function totalCost(product, action) {
let cartCost = localStorage.getItem('totalCost');
console.log("My cartCost is", cartCost);
console.log(typeof cartCost );
if(action == "decrease") {
cartCost = parseInt(cartCost);
localStorage.setItem('totalCost',cartCost - product.price);
} else if(cartCost != null) {
cartCost = parseInt(cartCost);
localStorage.setItem("totalCost", cartCost + product.price);
} else {
localStorage.setItem("totalCost", product.price);
}
}
function discountCart() {
let cartCost = localStorage.getItem('totalCost');
// VARIABLES FOR 20 OR 50
var discount20 = parseInt(cartCost) - 20
var discount50 = parseInt(cartCost) - 50
console.log("My cartCost is", cartCost);
console.log(typeof cartCost );
// DISCOUNT FUNCTIONALITY
if (cartCost >= 50 || cartCost <= 75) {
localStorage.setItem("totalCost", cartCost = discount20)
console.log('discount 20!', cartCost = discount20)
} else if (cartCost >= 200 || cartCost <= 250){
localStorage.setItem("totalCost", cartCost = discount50)
console.log('discount 50!', cartCost = discount50)
};
}
解决方案
在:
// VARIABLES FOR 20 OR 50
var discount20 = parseInt(cartCost) - 20
var discount50 = parseInt(cartCost) - 50
而不是使用-
运算符,-=
而是使用 the,如下所示:
// VARIABLES FOR 20 OR 50
var discount20 = parseInt(cartCost) -= 20
var discount50 = parseInt(cartCost) -= 50
此外,在:
localStorage.setItem('totalCost',cartCost - product.price);
照着做:
localStorage.setItem('totalCost',cartCost -= product.price);
同样,将代码中的每个+
运算符替换+=
为。
另外,请仔细阅读:
https://www.w3schools.com/js/js_operators.asp
了解 javascript 运算符。
推荐阅读
- javascript - RxJS。组合发射时间小于 1 秒的可观察对象
- java - Selenium webdriver 无法连接错误
- python - 通过边界框裁剪图像时出现 SystemError
- javascript - Touchmove 在移动设备上不起作用,例如桌面上的 mousemove
- javascript - 选择 DOM 中的前一个元素
- java - 无法找到或加载主类——Stanford CoreNLP——Java
- python-3.x - 如何使用 Microsoft Online Exchange 和 python 发送邮件
- java - 在 user.home 而不是 Ubuntu 中的相对路径中创建文件
- git - Nuxt 仅从 git 提交的源构建
- html - CSS:在浮动元素周围环绕多行文本