我正在使用javascript处理在线订单。我几乎有它工作,但我想做的是如果选择超过5个项目则应用12.5%的折扣。到目前为止,如果选择了超过任何一个项目,我已设法获得折扣。这是我的代码:
var totalItems = 0
// Run through the form fields to check for any filled fields
for (var i=0; i<juiceForm.length; i++)
{
n=0;
juicetotal = 0;
itemQuantity = Number(parseInt(juiceForm[i].value)); // convert field value to a number
itemQuantity = parseInt(juiceForm[i].value);
if (isNaN(itemQuantity))
{
itemQuantity = 0; // If the form field value is not a number, make it zero
}
// count the total number of juices selected
totalItems = totalItems += Number(parseInt(juiceForm[i].value));
if (totalItems >= 5 || itemQuantity >= 5 || (totalItems + itemQuantity) >= 5)
{
juiceTotal = (juiceTotal+(itemQuantity * juicePrice[i]))*0.875;
}
else
{
// Multiply the quantity by the item price and update the order total
juiceTotal = juiceTotal+(itemQuantity * juicePrice[i]);
}
}
如果我遇到麻烦,如果选择多个项目总共超过5个项目,则计算出错。例如,如果我有20箱20英镑的苹果汁和22英镑的1箱橙汁,12.5%的折扣我应该得到总共106.75英镑,但我得到95.81英镑。
我不确定我是否犯过一个明显的错误。谁能给我任何关于我做错的建议呢?
答案 0 :(得分:1)
也许您会想到这一点(未经过测试,将其视为伪代码)
var totalItems = 0
var juiceTotal = 0;
for (var i=0; i<juiceForm.length; i++)
{
var itemQuantity = parseInt(juiceForm[i].value);
if (isNaN(itemQuantity))
{
itemQuantity = 0;
}
totalItems += itemQuantity;
juiceTotal += (juicePrice[i]*itemQuantity);
}
if (totalItems >= 5)
juiceTotal *= 0.875;
}