他們的方法有相同的結果有多個正確答案?IF聲明多個答案 - 相同的結果Javascript
function check(code){
if(code == (8 || 9 || 13 || 16 || 17 || 18 || 20 || 32)){
return true;
}
}
我知道我可以使用switch語句,但我想知道他們是否是反正類似於此。我已經嘗試使用數組,但速度很慢。
我也意識到你可以使用& &但我不想輸入代碼==一百次。
他們的方法有相同的結果有多個正確答案?IF聲明多個答案 - 相同的結果Javascript
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查看完整文檔。
正是我在找什麼,謝謝! – MichaelH 2012-01-03 10:59:13
你要麼必須這樣做
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;
}
'&&'和''||具有不同的含義,但在沒有的情況下,你可以使用此結構。 – GolezTrol 2012-01-03 10:58:37