Как проверить, есть ли значение в массиве
Короткий ответ
Метод 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 — Ищет значение в массиве и возвращает его индекс.