他们是一种获得多个正确答案且结果相同的方法吗?
function check(code){
if(code == (8 || 9 || 13 || 16 || 17 || 18 || 20 || 32)){
return true;
}
}
我知道我可以使用 switch 语句,但我想知道它们是否与此类似。我已经尝试过使用数组,但速度很慢。
我也意识到您可以使用 && 但我不想输入代码 == 一百次。
他们是一种获得多个正确答案且结果相同的方法吗?
function check(code){
if(code == (8 || 9 || 13 || 16 || 17 || 18 || 20 || 32)){
return true;
}
}
我知道我可以使用 switch 语句,但我想知道它们是否与此类似。我已经尝试过使用数组,但速度很慢。
我也意识到您可以使用 && 但我不想输入代码 == 一百次。
考虑使用数组
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。
你要么必须这样做
return code == 8 || code == 9 || ...;
或这个
return [8, 9, 13, ...].indexOf(code) > 0;
不,你必须把它们都拼出来。
更好的方法是循环:
var values = [8, 9, 13, 16, 17, 18, 20, 32];
for (i = 0; i < values.length; ++i) {
if (code === values[i]) {
// do something.
}
}
那个怎么样:
function check(code){
return [8, 9, 13, 16, 17, 18, 20, 32].indexOf(code) != -1;
}