shevchenkonik
@shevchenkonik

Как проверить условие с помощью массива?

Существует переменная и массив значений. Необходимо проверить, присутствует ли значение переменной в массиве.

Сейчас реализовал без массива, хотелось бы привести к более красивому виду:

var x = window.location.hash;

if ((x === '#one' || x === '#two' || x === '#three') !== true) {
   console.log('nope');
}

Всем спасибо за ответы )
  • Вопрос задан
  • 134 просмотра
Решения вопроса 2
knetesin
@knetesin
Шпион
if(['#one', '#two', '#three'].indexOf(x) === -1) {
    console.log('nope');
}
Ответ написан
Комментировать
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
var a = ['#one', '#two', '#three'];
var x = window.location.hash;

if (a.indexOf(x) < 0) {
   console.log('nope');
}


Метод indexOf() возвращает первый индекс, по которому данный элемент может быть найден в массиве или -1, если такого индекса нет.

Array.prototype.indexOf()

P.S.
(x === '#one' || x === '#two' || x === '#three') !== true

Можно заменить для улучшения читаемости на это:
x != '#one' && x != '#two' && x != '#three'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vshvydky
let arr = [1,2,3,4,5];
console.log(arr.indexOf(1));
console.log(arr.indexOf(6));

-1 возвращается если элемент не найден
0 и далее номер позиции, где найдено.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы