Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как проверить, есть ли значение в массиве

Короткий ответ

Метод includes() у массива ищет значение:

console.log(['red', 'green', 'blue'].includes('green'));

Результат:

true

Объекты

Объекты сравниваются по ссылке, поэтому для них условие задают функцией в some():

const users = [{ id: 1 }, { id: 2 }];
 
console.log(users.some((user) => user.id === 2));

Результат:

true

Получить сам элемент

Если нужен найденный объект, используйте find():

const users = [{ id: 1, name: 'Anna' }, { id: 2, name: 'Oleg' }];
 
console.log(users.find((user) => user.id === 2).name);

Результат:

Oleg

Частая ошибка

indexOf() не находит NaN, а includes() находит:

const values = [1, NaN, 3];
 
console.log(values.indexOf(NaN));
console.log(values.includes(NaN));

Результат:

-1
true

Функции из этого ответа

  • Array.prototype.includes — Проверяет, есть ли значение в массиве.
  • Array.prototype.some — Проверяет, проходит ли проверку хотя бы один элемент.
  • Array.prototype.find — Возвращает первый элемент, прошедший проверку.
  • Array.prototype.indexOf — Ищет значение в массиве и возвращает его индекс.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.