Array.findIndex(): индекс первого совпадения
Метод findIndex возвращает позицию первого элемента массива, удовлетворяющего условию.
Назначение
Метод findIndex возвращает позицию первого элемента массива, удовлетворяющего условию.
Как это работает
Индексы начинаются с нуля. При отсутствии совпадения возвращается -1, а не undefined. Условие получает элемент, индекс и исходный массив, но обычно достаточно первого аргумента.
Пример
const sizes=[8,12,16];
console.assert(sizes.findIndex(n=>n>=12)===1);
console.assert(sizes.findIndex(n=>n>20)===-1);
console.assert(sizes.findIndex(n=>n===8)===0);
Что должно получиться
Три проверки дают соответственно 1, -1 и 0. Эти значения показывают, почему проверка if(index) не подходит для определения найденного элемента.
Граница применения и частая ошибка
Нельзя проверять результат как простое логическое значение: индекс 0 ложный, а -1 истинный. Сравнивайте явно с -1 перед использованием позиции.
Самостоятельная проверка
Сделайте совпадающим самый первый элемент, затем уберите все совпадения. Обе ситуации должны различаться; перед удалением по индексу обязательно проверьте -1.
JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.