0

同じ結果で複数の正解を持つ方法ですか?

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

switch ステートメントを使用できることはわかっていますが、とにかくこれに似ているかどうか疑問に思っていました。私はすでに配列を使用しようとしましたが、遅いです。

&& を使用できることも理解していますが、 code == を 100 回入力する必要はありません。

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 に答える