我很好奇,有没有更简单的说法
if(myVar == myVal || myVar == myOtherVal){ /*...*/ }
如:
if(myVar == myVal || myOtherVal){ /* */ }
我知道我的建议代码只检查myVar
等于myVal
或myOtherVal
是否null
(未定义)和false
。< / p>
所以,正如我之前所说,有一种更简单的方式来编写
if(myVar == myVal || myVar == myOtherVal){ /*...*/ }
只是想知道是否有某种类型的jS速记if
声明是我错过的。
提前致谢。
答案 0 :(得分:1)
您可以使用数组:
if([myVal, myOtherVal].indexOf(myVar) + 1) { /* or > -1 or !== -1 */ }
或switch
声明:
switch(myVar) {
case myVal:
case myOtherVal:
/* */
break;
}
这些仅在将变量与两个以上可能的值进行比较时才真正适用。
答案 1 :(得分:1)
答案 2 :(得分:0)
不是我知道的。
如果您真的想要,可以将Array
的{{1}}与数组一起使用。
答案 3 :(得分:0)
result = ((myVar==myval)||(myVar==myOtherVal)) ? x : y;
可以:
if((myVar==myVal) || (myVar==myOtherVal))
result = x;
else
result = y;
此外:
((myVar==myval)||(myVar==myOtherVal)) ? someFunction() : otherFunction();
与:
相同if((myVar==myVal) || (myVar==myOtherVal))
someFunction();
else
otherFunction();
答案 4 :(得分:0)
另一种方法是使用&amp;&amp;作为“守卫”:
(myVar == myVal || myVar == myOtherVal) && /* expression */
但我不推荐它。您的代码应易于阅读和维护,因此:
if (myVar == myVal || myVar == myOtherVal) {
/* do stuff */
}
对我来说要好得多。