findLast(): поиск подходящего элемента с конца массива
FindLast возвращает первый подходящий элемент при просмотре массива с конца. Это удобно для поиска последней подходящей записи, когда порядок массива уже имеет определённый смысл.
Назначение
FindLast возвращает первый подходящий элемент при просмотре массива с конца. Это удобно для поиска последней подходящей записи, когда порядок массива уже имеет определённый смысл.
Как это работает
Предикат получает значение и индекс. После первого успешного результата поиск прекращается. Исходный массив не разворачивается, а при отсутствии совпадений метод возвращает undefined.
Пример
const revisions = [{id:1, ready:true}, {id:2, ready:false}, {id:3, ready:true}];
const last = revisions.findLast(item => item.ready);
console.assert(last.id === 3);
console.assert(revisions[0].id === 1);
console.assert(revisions.findLast(item => item.id > 10) === undefined);
console.log(last.id);
Что должно получиться
Найдена запись с id 3, порядок исходных записей остался прежним. Проверка отсутствующего результата показывает необходимость отдельной обработки пустого поиска.
Граница применения и частая ошибка
Последний в массиве не обязательно самый поздний по времени: это зависит от порядка входных данных. Возвращённый объект остаётся ссылкой на исходный объект. Не меняйте его случайно, если нужен независимый результат.
Самостоятельная проверка
Переставьте записи и сравните найденный объект. Затем добавьте поле времени и сформулируйте отличие поиска с конца от поиска максимальной даты. Проверьте поддержку метода в целевой среде проекта.
Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.