IF语句多个答案 - 相同结果Javascript

时间:2012-01-03 10:53:57

标签: javascript statements

他们的方法是否具有相同结果的多个正确答案?

 function check(code){
    if(code == (8 || 9 || 13 || 16 || 17 || 18 || 20 || 32)){
      return true;
    }
 }

我知道我可以使用switch语句,但我想知道它们是否与此类似。我已经尝试过使用数组,但速度很慢。

我也意识到你可以使用&&但我不想输入代码==一百次。

4 个答案:

答案 0 :(得分:3)

考虑使用数组

function check(code){
    return [8,9,13,16,17,18,20,32].indexOf(code) != -1;
}

请注意,indexOf方法是ECMA5的一部分,可能在某些浏览器中不可用。

有关完整文档,请参阅https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf

答案 1 :(得分:1)

你要么必须这样做

return code == 8 || code == 9 || ...;

或者

return [8, 9, 13, ...].indexOf(code) > 0;

答案 2 :(得分:1)

不,你必须把它们拼出来。

更好的方法是循环:

var values = [8, 9, 13, 16, 17, 18, 20, 32];
for (i = 0; i < values.length; ++i) {
    if (code === values[i]) {
        // do something.
    }
}

答案 3 :(得分:1)

怎么样:

function check(code){
   return [8, 9, 13, 16, 17, 18, 20, 32].indexOf(code) != -1;
}