IF оператор с несколькими ответами - одинаковый результат Javascript - PullRequest
0 голосов
/ 03 января 2012

Это метод, позволяющий получить несколько правильных ответов с одним и тем же результатом?

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

Я знаю, что могу использовать оператор switch, но мне было интересно, похоже ли это на это.Я уже пытался использовать массив, но он медленный.

Я также понимаю, что вы можете использовать &&, но я не хочу вводить код == сто раз.

Ответы [ 4 ]

3 голосов
/ 03 января 2012

рассмотрите возможность использования массива

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 голос
/ 03 января 2012

Как насчет этого:

function check(code){
   return [8, 9, 13, 16, 17, 18, 20, 32].indexOf(code) != -1;
}
1 голос
/ 03 января 2012

Нет, вы должны записать их все.

Лучшим способом был бы цикл:

var values = [8, 9, 13, 16, 17, 18, 20, 32];
for (i = 0; i < values.length; ++i) {
    if (code === values[i]) {
        // do something.
    }
}
1 голос
/ 03 января 2012

Вы должны сделать это

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

или это

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