计算订单总额:应用折扣

时间:2012-07-28 16:38:00

标签: javascript arrays forms

我正在使用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英镑。

我不确定我是否犯过一个明显的错误。谁能给我任何关于我做错的建议呢?

1 个答案:

答案 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;
}