Как обойтись без ИЛИ?
Есть условие на проверку значения:
var $val = 1; if($val == '1' || $val == '7' || $val == '9'){ console.log('выполняем действие'); } Как обойтись без логического ИЛИ( || ) ? |
Есть вариант c использованием метода some(). Но он годится только если у тебя много возможных ИЛИ
var $val = 1; var m = ['1', '7', '9']; var res = m.some(function(el) { return $val == el; }); if (res) { console.log('выполняем действия'); } |
var $val = 1; if($val in {1:0, 7:0, 9:0}) { alert(true); } |
var $val = 1; switch ($val) { case 1: case 7: case 9: console.log('выполняем действие'); break; } |
if (/^[179]$/.test($val)) { ... } |
По-моему самый простой:
(['1', '7', '9'].indexOf(val) >= 0) |
как и просили, без или :)
var $val = 1; console.log('выполняем действие'); |
danik.js, а зачем цифры в кавычки?
|
Цитата:
|
Цитата:
|
var $val = 1, tst = !!('179'.indexOf(''+$val)+1); alert(tst) var i=$val = 1; var y = (9-i)*(7-i)*(1-i); alert(!y) |
Цитата:
Код:
npm install --global NervifyJS Цитата:
Цитата:
var $val = 1; var values = _.invert([1, 7, 9]); if($val in values) { console.log(true); } |
Deff,
var $val = 17, tst = !!('179'.indexOf(''+$val)+1); alert(tst) |
Цитата:
Я так понимаю это потому, что js имеет низкий порог вхождения, поэтому туда прет толпа веб-говно-программистов-дегенератов и возникает такая вот херня. |
Гы - пример был для младших школьников - там считают от 0 до 9,
ты еще 179 задай Вот для пятиклашек var $val = 1, tst = '1|7|9|'.indexOf(''+$val)+1; alert(!!tst) |
Цитата:
|
Deff, ну ты ведь не тупорылый клиент, так ведь? Ты вроде как и опыт имеешь, не новичок ведь (было бы простительно). Стало быть ты просто упертый говнокодер.
Ну и если меня тут забанят, я не окажусь на улице. |
danik.js,
Я Военный пенсионер, помимо говнокодерства пол-союза в моих разработках уже более пятнадцати лет, и замены им пока нет, а у тьву что есть? Кто тебя спрашивал, сосунка, - твое мнение о моём говнокоде ? Имхо, к примеру, в этом топике, есть ли какая твоя идея отличная от иных предложенных? Чем ты хвалишься, красивым написанием кода ? Дегенерат имхо ты, поскольку не усвоил за столько лет даже норм приличия общения с юзерами! |
Цитата:
Пости в личку автору в таком случае :) Цитата:
Цитата:
Цитата:
|
Цитата:
i == 1 || i == 2 || i == 3 -> !( (i != 1) && (i != 2) && (i != 3) ) -> !( (1-i != 0) && (2-i != 0) && (3-i != 0) ) -> заменяем логические операции и значения арифметическими !( (1-i) * (2-i) * (3-i) ) |
Цитата:
Зато за все это время такого насмотрелся, что да, походу нервные клетки дегенерируют :) |
var $val = 1; if(~'1|3|7|'.indexOf(''+$val)) { alert(true); } :D var $val = 1; ~'1|3|7|'.indexOf(''+$val) && alert(true); |
Цитата:
|
danik.js, хватит уже хаить Deff'a, он наш человек.
Я посмотрю как ты в пенсионном возрасте будешь кодить потом. |
Современный вариант:
alert( new Set([1, 7, 9]).has(1) ):) P.S. Бесит таки, что не удосужились придумать литералы для set\map. :( |
Цитата:
или ты про какой-то другой map? |
Яростный Меч, про этот Map, про какой ещё. В отличие от объекта ключи в нём любые, а не только строки.
|
Цитата:
|
nerv_, медленней простого объекта. Но гораздо быстрее поиска по массивам. Ну плюс генерация через жопу - сначала уродливый двухуровневый массив, а потом преобразование его в Map, что тоже отражается на времени.:(
В целом всё равно штука прикольная. Прикольней только WeakMap\Set.:) |
Часовой пояс GMT +3, время: 23:42. |