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

Array.indexOf(): позиция значения без условия

Метод indexOf ищет значение в массиве и возвращает индекс первого совпадения либо -1.

Назначение

Метод indexOf ищет значение в массиве и возвращает индекс первого совпадения либо -1.

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

Сравнение близко к строгому равенству и не находит NaN. Вторым аргументом можно задать начальную позицию поиска. Для сложного условия по полю объекта предназначен findIndex.

Пример

const tags=['html','css','html'];
console.assert(tags.indexOf('html')===0);
console.assert(tags.indexOf('html',1)===2);
console.assert(tags.indexOf('js')===-1);
console.assert([NaN].indexOf(NaN)===-1);

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

Первое вхождение HTML находится в нулевой позиции, следующее — во второй. Отсутствующее значение и NaN дают -1 при использовании indexOf.

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

Если передать -1 напрямую в splice, будет удалён последний элемент, хотя искомого значения не было. Всегда проверяйте результат поиска перед изменением массива.

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

Найдите второе вхождение, начав поиск после первого. Затем выполните поиск отсутствующего значения и убедитесь, что массив не изменился.

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

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