【发布时间】:2021-06-13 16:43:38
【问题描述】:
任务是构建一个准确的价格计算器,根据数量计算销售价格。我已经使用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
但这只会根据是否有提醒返回 1 或 0。所以购物车中的 2 颗糖果将返回 0,而 1 颗糖果将返回 1,因为 1 / 2 = 1。但我不确定如何将其用于我的事业?
【问题讨论】:
-
给定 compileCart 的预期总价值是多少?
-
模数运算符是一个好的开始。看起来如果 mod 为 0,你有 numCandies * 2.5,否则你有 (numCandies -1)*2.50 + 3.97。
-
@azad 现在存在的已编译购物车的总额应该是 11.14 美元。 (2 个糖果 @ 5 美元,1 个糖果 @ 3.97 和 1 个面包 @ 2.17)。
-
@jeremykahan 我很困惑你从哪里得到 2.50。
-
@n-dev-101我修改了我的答案,请检查一下
标签: javascript frontend logic javascript-objects modulo