0

他们是一种获得多个正确答案且结果相同的方法吗?

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

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

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

4

4 回答 4

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

于 2012-01-03T10:55:56.393 回答
1

你要么必须这样做

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

或这个

return [8, 9, 13, ...].indexOf(code) > 0;
于 2012-01-03T10:55:57.967 回答
1

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

更好的方法是循环:

var values = [8, 9, 13, 16, 17, 18, 20, 32];
for (i = 0; i < values.length; ++i) {
    if (code === values[i]) {
        // do something.
    }
}
于 2012-01-03T10:56:34.427 回答
1

那个怎么样:

function check(code){
   return [8, 9, 13, 16, 17, 18, 20, 32].indexOf(code) != -1;
}
于 2012-01-03T10:56:53.887 回答