如何在javascript中的if语句中指定多个条件

时间:2012-01-03 09:56:49

标签: javascript

这是我如何提及这个或这个

的两个条件
if (Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')
    PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

8 个答案:

答案 0 :(得分:111)

只需将它们添加到if语句的主括号中,如

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {
            PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

逻辑上,这也可以用更好的方式重写! 这具有完全相同的含义

if (Type == 2 && (PageCount == 0 || PageCount == '')) {

答案 1 :(得分:13)

我目前正在检查大量条件,使用超出4条件的if语句方法变得难以处理。只是为未来的观众分享一个干净的替代品...我可以很好地扩展,我使用:

var a = 0;
var b = 0;

a += ("condition 1")? 1 : 0; b += 1;
a += ("condition 2")? 1 : 0; b += 1;
a += ("condition 3")? 1 : 0; b += 1;
a += ("condition 4")? 1 : 0; b += 1;
a += ("condition 5")? 1 : 0; b += 1;
a += ("condition 6")? 1 : 0; b += 1;
// etc etc

if(a == b) {
    //do stuff
}

答案 2 :(得分:7)

有时你可以找到进一步结合法则的技巧。

例如:

0 + 0 = 0

"" + 0 = 0

所以

PageCount == 0
PageCount == ''

可以写成:

PageCount+0 == 0

在javascript中0false反转!一样好,它会将0变为true

!PageCount+0

总计:

if ( Type == 2 && !PageCount+0 ) PageCount = elm.value;

答案 3 :(得分:6)

整个if应该用括号括起来,or运算符是||而不是!!,所以

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) { ...

答案 4 :(得分:6)

这是一种替代方法。

let conditionsArray = [
    condition1, 
    condition2,
    condition3,
]

if (conditionsArray.indexOf(false) === -1) {
    "do somthing"
}

答案 5 :(得分:4)

if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {

        PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

这可能是可能的解决方案之一,所以'或'是||不!!

答案 6 :(得分:3)

将它们包裹在额外的一对parens中,你很高兴。

if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == ''))
    PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

答案 7 :(得分:-1)

function go(type, pageCount) {
    if ((type == 2 && pageCount == 0) || (type == 2 && pageCount == '')) {
        pageCount = document.getElementById('<%=hfPageCount.ClientID %>').value;
    }
}