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

findLastIndex(): индекс последнего подходящего элемента

FindLastIndex ищет с конца массива и возвращает индекс совпадения. Метод полезен, когда после поиска нужна позиция для последующей операции, а не только само значение.

Назначение

FindLastIndex ищет с конца массива и возвращает индекс совпадения. Метод полезен, когда после поиска нужна позиция для последующей операции, а не только само значение.

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

Успешный результат может быть равен нулю. Отсутствие совпадения обозначается числом -1, поэтому логическая проверка if(index) не подходит для различения этих состояний.

Пример

const states = ["draft", "ready", "draft"];
const index = states.findLastIndex(value => value === "draft");
console.assert(index === 2);
console.assert(states.findLastIndex(value => value === "missing") === -1);
console.assert(["draft"].findLastIndex(value => value === "draft") === 0);
console.log(index >= 0 ? states[index] : "Нет совпадений");

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

Первый поиск возвращает 2, отсутствие — -1, совпадение в единственном элементе — 0. Все три случая проверены отдельно и не смешиваются с истинностью числа.

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

Не передавайте -1 в splice без проверки: отрицательная позиция может удалить элемент с конца. Индекс теряет актуальность после изменения порядка или длины массива. Для длительного хранения ссылки на запись часто лучше стабильный идентификатор.

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

Напишите условие, которое безопасно заменяет найденный элемент. Проверьте пустой массив, совпадение в начале и отсутствие результата. Затем объясните, почему операция должна использовать индекс до сортировки массива.

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

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