Javascript“如果,否则如果,还有多个条件”

时间:2014-02-13 19:15:21

标签: javascript if-statement conditional-operator

以下代码会增加移动工作中的男性数量,以使总小时数保持在9小时以内。 这段代码工作正常。 (http://economymoving.net/get_an_online_moving_quote.php

// determines # of men needed to stay <= 9 hours and sets a 2 man minimum
            var menQty;

        if (Math.ceil(manHrs/9) < 2) {
            menQty = 2;
        }else{
            menQty = Math.ceil(manHrs/9);
        }

但是,如果工作中有大件物品,则应至少有3名男性。 所以我将以下代码添加到原始工作语句中以检查大件项目。代码应检查大件物品。 第一次测试:如果没有大件物品和manHrs / 9&lt; 2 =设定2个人的数量 第二次测试:如果有大件物品和manHrs / 9 <2 =设定了3个人的数量。

// determines # of men needed to stay <= 9 hours and sets a 2 man minimum
**// Also determines if there is a bulky item if true sets a 3 man minimum**    
    var menQty;

    if **(countBLKY = 0 &&** (Math.ceil(manHrs/9) < 2)**)**
    {
        menQty = 2;
    }
    **else if (countBLKY != 0 && (Math.ceil(manHrs/9) < 2))
    {
        menQty = 3;
    }**
    else
    {
        menQty = Math.ceil(manHrs/9);
    }

该脚本执行代码的ELSE部分。我认为存在语法问题,因为下面的函数应该将countBLKY变量设置为0或另一个整数。

这是提供countBLKY变量的函数。该功能似乎工作正常,当在网页上查看时,Bulky Item部分显示0或更大的数字。 (网页上的大项目标签)

function addBLKY() {

    var bbyG = document.moveQuote.BLKY_babyGrandPiano.value * 1;
    var spnt = document.moveQuote.BLKY_SpinetPiano.value * 1;
    var uprt = document.moveQuote.BLKY_uprightPiano.value * 1;
    var bgtv = document.moveQuote.BLKY_bigScreenTV.value * 1;
    var pTbl = document.moveQuote.BLKY_poolTable.value * 1;
    var pBall = document.moveQuote.BLKY_PinballVideoGame.value * 1;

    var countBLKY = bbyG + spnt + uprt + bgtv + pTbl + pBall;

    document.moveQuote.BLKY_total.value = countBLKY;
}

我希望一切都清楚,如果有什么不是,请告诉我。

1 个答案:

答案 0 :(得分:3)

if (countBLKY = 0 && (Math.ceil(manHrs/9) < 2))
//            ^

这是一项任务,而不是comparison。此外,您应该将代码缩短为:

var menQty = Math.ceil(manHrs/9);

if (countBLKY == 0)
    menQty = Math.max(menQty, 2); // at least two
else
    menQty = menQty < 2 ? 3 : menQty; // instead of one send three but two are OK

请注意大件物品的最小人数奇怪,你的代码可能有错误。