Задать вопрос

Комбинированный if?

Уверен, вопрос задавался много раз, но так и не смог ничего найти. Меня инетерсует, как можно построить if, используя название переменной лишь один раз, например:
if(var == (52 || 62))
вместо
if(var == 52 || var == 62)
  • Вопрос задан
  • 330 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 2
werty1001
@werty1001
undefined
if( [52, 62].indexOf( var ) !== -1 )
Ответ написан
@lega
if({52:1, 62:1}[var])

if('52,62'.match(52))
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@dmz9
проваливающийся свич быстрее всех, не слушай никого ыы.
первый и третий варианты тратят время на создание массивов/объектов соответственно.
второй вариант, со свичем, ничего не создает, соответственно быстрее.
var X = 52;
    console.time('someFunction1');
    for (var i=0,x=0; i < 10000; i++) {
        if ([52, 62, 72, 82, 92].indexOf(X) !== -1) {
            x++;
        }
    }
    console.log(x);
    console.timeEnd('someFunction1');
    console.log('--------------');
    console.time('someFunction2');
    for (var i=0,y=0; i < 10000; i++) {
        switch (X) {
            case 52:
            case 62:
            case 72:
            case 82:
            case 92:
                y++;
                break;
        }
    }
    console.log(y);
    console.timeEnd('someFunction2');
    console.log('--------------');
    console.time('someFunction3');

    for (var i=0,z=0; i < 10000; i++) {
        if({52:1, 62:1, 72:1, 82:1, 92:1}[X]) { z++; }
    }
    console.log(z);
    console.timeEnd('someFunction3');

10000
someFunction1: 2.541ms
--------------
10000
someFunction2: 1.192ms
--------------
10000
someFunction3: 3.676ms
Ответ написан
NeiroNx
@NeiroNx
Программист
Еще можно так(поиск ключа в массиве):
if(34 in {34:"",55:""}){}
Ответ написан
madmages
@madmages
Человек прямоходящий
оператор || это бинарный оператор который возвращает булевый тип. На вход этот оператор принимает два булевых типа. Тоесть если ты используешь (52 || 62) то из скобки выйдет true.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы