Как поискать элементы с конца массива
- 16 декабря 2025
Метод findLast() появился в JavaScript как часть стандарта ECMAScript 2023 и уже широко поддерживается всеми актуальными браузерами. Он работает как зеркальное отражение метода find(), но ищет элементы не с начала массива, а с конца — и возвращает первый найденный в таком обратном порядке элемент, удовлетворяющий условию. Если ничего не найдено, возвращается undefined [[1]].
Простейший пример
const array1 = [5, 12, 50, 130, 44];
const found = array1.findLast(element => element > 45);
console.log(found); // 130 — последний элемент больше 45Поиск в массиве объектов
Часто findLast() применяют для поиска в массивах объектов. Допустим, есть инвентарь товаров, и нужно найти последний продукт, количество которого меньше двух:
const inventory = [
{ name: "apples", quantity: 2 },
{ name: "bananas", quantity: 0 },
{ name: "fish", quantity: 1 },
{ name: "cherries", quantity: 5 },
];
const result = inventory.findLast(({ quantity }) => quantity Сложные условия
Можно использовать его и для сложных условий, например, найти последнее простое число в массиве:
function isPrime(n) {
if (n Обработка разрежённых массивов
Важная деталь: findLast() обходит все индексы подряд, включая пустые места в разреженных массивах — они обрабатываются как undefined. Например:
const sparse = [0, 1, , , , 5];
sparse.findLast((val, idx) => {
console.log(`Index ${idx}: ${val}`);
return false;
});
// Выведет:
// Index 5: 5
// Index 4: undefined
// Index 3: undefined
// Index 2: undefined
// Index 1: 1
// Index 0: 0Работа с массивоподобными объектами
Метод также работает на «массивоподобных» объектах — достаточно, чтобы у объекта был length и свойства с целочисленными ключами. Например:
const arrayLike = { length: 3, 0: 2, 1: 7.3, 2: 4 };
const lastInt = Array.prototype.findLast.call(arrayLike, x => Number.isInteger(x));
console.log(lastInt); // 4Парный метод findLastIndex()
Для получения индекса вместо значения существует парный метод — findLastIndex(). Оба метода экономят время и делают код чище по сравнению с ручными циклами.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.