Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как обойтись без ИЛИ? (https://javascript.ru/forum/events/52223-kak-obojjtis-bez-ili.html)

piraids 09.12.2014 11:04

Как обойтись без ИЛИ?
 
Есть условие на проверку значения:
var $val = 1;
if($val == '1' || $val == '7' || $val == '9'){
  console.log('выполняем действие');
}

Как обойтись без логического ИЛИ( || ) ?

Safort 09.12.2014 11:47

Есть вариант c использованием метода some(). Но он годится только если у тебя много возможных ИЛИ

var $val = 1;

    var m = ['1', '7', '9'];
    var res = m.some(function(el) {
      return $val == el;
    });

    if (res) {
      console.log('выполняем действия');
    }

ruslan_mart 09.12.2014 11:58

var $val = 1;
   
if($val in {1:0, 7:0, 9:0}) {
    alert(true);
}

Sweet 09.12.2014 12:19

var $val = 1;
switch ($val) {
    case 1:
    case 7:
    case 9:
        console.log('выполняем действие');
        break;
}

Яростный Меч 09.12.2014 13:21

if (/^[179]$/.test($val)) { ... }

danik.js 09.12.2014 17:46

По-моему самый простой:
(['1', '7', '9'].indexOf(val) >= 0)

nerv_ 09.12.2014 17:56

как и просили, без или :)
var $val = 1;
console.log('выполняем действие');

ruslan_mart 09.12.2014 18:06

danik.js, а зачем цифры в кавычки?

danik.js 09.12.2014 18:27

Цитата:

Сообщение от Ruslan_xDD
danik.js, а зачем цифры в кавычки?

Это не ко мне вопрос. Только нужно помнить, что для indexOf проводится строгая проверка - нужно привести все к одному типу.

bes 09.12.2014 19:02

Цитата:

Сообщение от piraids (Сообщение 345630)
Есть условие на проверку значения:
var $val = 1;
if($val == '1' || $val == '7' || $val == '9'){
  console.log('выполняем действие');
}

Как обойтись без логического ИЛИ( || ) ?

я думаю, что твоё решение самое адекватное :)


Часовой пояс GMT +3, время: 13:24.