检查商品数量并根据销售变量附加正确的价格,销售价格或正常价格

Check quantity of item and append correct price either Sales price or Regular price based on sales variable

任务是建立一个准确的价格计算器,根据数量计算销售价格。我已经使用 compiledCart.reduce() 方法构建了一个总价计算器,(如下)但是我不知道如何添加销售功能。

如果用户购买 1 个糖果,价格为 3.97 美元,如果用户购买 2 个,价格为 5.00 美元。 如果用户购买了 3 个,那么前两个是 5.00 美元,第三个是 3.97 美元。如果用户购买 5 个,情况相同。前 4 个是 10 美元,第 5 个是 3.97 美元

我的 compiledCart 变量如下所示:

    [ 
     0: {item: "candy", quantity: 3, price: 3.97, salesPrice: 5.00}, 
     1: {item: "bread", quantity: 1, price: 2.17} 
    ]

这就是我正在做的事情:

    const gross = compiledCart.reduce( ( sum, { price, quantity } ) => sum + (price * quantity) , 0)

但我一辈子都想不出如何计算销售价格变量。

我试过像这样使用模数 % 运算符:

    quantity % 2

但只有 return 是 1 或 0,具体取决于是否有提醒。所以购物车中的 2 颗糖果将 return 为 0,而 1 颗糖果将 return 为 1,因为 1 / 2 = 1。但我不确定如何将其用于我的事业?

如果数量大于2则:

数量除以2再乘以salesPrice

var compiledCart = [ 
     {item: "candy", quantity: 3, price: 3.97, salesPrice: 5.00}, 
     {item: "bread", quantity: 1, price: 2.17} 
    ];

var sum = compiledCart.reduce((sum, { quantity, price, salesPrice = 0 }) => {

        let tot = 0;
        if (quantity > 1)
            tot = Math.trunc(quantity / 2) * (salesPrice || price);
        
        if (quantity % 2 == 1)
          tot += price;

        return sum + tot;
    }, 0);

console.log(sum);

试试这个

const gross = cart.reduce((sum, {price, quantity, salesPrice = 0}) => {
    let total = 0;
    if (quantity >= 2) {
        const saleQuantity = 2 * Math.floor(quantity / 2);
        console.log({saleQuantity, remainderQuantity: quantity - saleQuantity});
        total = ((saleQuantity / 2) * salesPrice) + (price * (quantity - saleQuantity));
    } else {
        total = (price * quantity);
    }
    return sum + total;
}, 0);