我的网页有一个柜台,用于计算成人票(每张25美元)和小票(每张10美元)。每个计数器有两个按钮,一个将计数器增加1,另一个将减少1。然后将它们存储在一个列表(adultTickets和minorTickets)中,我正在尝试创建一个函数来计算总成本(例如,两张成人票和一张小票将花费60美元),但我遇到了问题,如何跟踪票价下降时的成本,从而降低价格。
下面是我目前追踪成本的方法,我已经把它剥回原来的水平,因为我试图做的每一次修复似乎都会使情况变得更糟:
const countCostAdd = () => {
let overallCost = (adultTickets.length * 25) + (minorTickets.length * 10);
setCost(overallCost);
};
const countCostMinus = () => {
let overallCost = (adultTickets.length * 25) - (minorTickets.length * 10);
setCost(overallCost);
}添加部分工作得很好,但是减号函数没有。例如,用户添加了2张小票,然后拿走了1张。总成本应该是10,但它的结果是-10,因为(0 x 25 = 0) - (1 X 10)。我尝试将其限制在0,但这就产生了一个问题:每当adultTickets.length =0时,即使有票选择,它也会使整个成本为0。
发布于 2022-07-06 22:29:30
这是为了我:
const countCostMinus = () => {
if(overallCost != 0) {
let overallCost = (adultTickets.length * 25) + (minorTickets.length * 10);
setCost(overallCost);
}}如果我正确地理解了这一点,那是因为我的脚本在每次更新时都没有保存overallCost,所以不需要从它中减去任何东西。每次我减少1,数组的长度就会自动改变,所以它只需要做与countCostAdd相同的事情。
发布于 2022-07-04 17:27:52
每次你拿走门票时,你所做的就是从成人票的数量中减去次要票的数量。所以这个函数所做的就是用0- 20重新设置overallCost,当你减少的时候将它更改为0- 10,这就是你要得到的。
因此,要减少成人票,应该是overallCost = ((adultTickets.length - 1) * 25) + (minorTickets.length * 10)。要减少小票,应该是overallCost = (adultTickets.length * 25) + (minorTickets.length -1* 10)。您可能需要不同的函数,因为不同的值。这有意义吗?
https://stackoverflow.com/questions/72860077
复制相似问题