Вебсправочник
Справочник JavaScript

Array.includes(): проверка наличия значения

Метод includes проверяет, встречается ли значение в массиве, и возвращает true или false.

Назначение

Метод includes проверяет, встречается ли значение в массиве, и возвращает true или false.

Как это работает

Сравнение не преобразует строку в число. Метод умеет находить NaN, в отличие от indexOf. Объекты сравниваются по идентичности ссылки, а не по набору одинаковых свойств.

Пример

console.assert([1,3,5].includes(3));
console.assert(![1,3,5].includes('3'));
console.assert([NaN].includes(NaN));
const item={id:1};
console.assert([item].includes(item));
console.assert(![item].includes({id:1}));

Что должно получиться

Число находится, строка не находится, NaN находится. Один и тот же объект совпадает по ссылке; новый объект с тем же id остаётся отдельным значением.

Граница применения и частая ошибка

Новый объект с такими же полями не считается тем же элементом. Для поиска записи по id используйте условие в some или find, а не includes с заново созданным объектом.

Самостоятельная проверка

Сравните число 3 и строку "3", затем два отдельных объекта {id:1}. Объясните, почему внешне одинаковое содержимое не гарантирует совпадение.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.