首页 > 解决方案 > 对 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)
    };
}

标签: javascriptcartdiscountshopping

解决方案


在:

// 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 运算符。


推荐阅读