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 в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.