.findLast()

Найдёт первый подходящий по условию элемент, обходя массив, начиная с конца.

Время чтения: меньше 5 мин

Кратко

Скопировано

Метод findLast() обходит массив, начиная от последнего элемента, и возвращает значение элемента подходящего по условию переданной функции. Если подходящий элемент найден, обход прекращается и метод возвращает найденный элемент. Если при обходе массива не был найден подходящий элемент, то метод вернёт undefined.

Пример

Скопировано

Найдем в массиве строк последний элемент, у которого длина больше 3:

        
          
          const names = ['Ann', 'Dan', 'Julia', 'Scarlett', 'Pat']const name = names.findLast((element) => element.length > 3)console.log(name)// Scarlett
          const names = ['Ann', 'Dan', 'Julia', 'Scarlett', 'Pat']

const name = names.findLast((element) => element.length > 3)
console.log(name)
// Scarlett

        
        
          
        
      

Найдем в массиве последний элемент, для которого соблюдается условие — значение больше 10 и при этом индекс нечётный:

        
          
          const numbers = [10, 15, 5, 20, 0, -10, 25]const element = numbers.findLast((element, index) => element > 10 && index % 2 === 1 )console.log(element)// 20
          const numbers = [10, 15, 5, 20, 0, -10, 25]

const element = numbers.findLast((element, index) => element > 10 && index % 2 === 1 )
console.log(element)
// 20

        
        
          
        
      

Как пишется

Скопировано

Array.findLast принимает два аргумента:

  • колбэк-функция, являющаяся предикатом и используемая для определения является ли текущий элемент искомым;
  • необязательный параметр, объект, используемый для определения this при выполнении колбэк-функции.

Колбэк-функция принимает три необязательных аргумента:

  • текущий элемент;
  • индекс текущего элемента;
  • массив, для которого был вызван метод findLast().

Колбэк-функция выполняется для каждого элемента массива, начиная с последнего. Как только для одного из элементов массива функция вернёт значение, которое интерпретируется как true, перебор прекращается и значение элемента возвращается как результат метода findLast().

Если для всех элементов массива колбэк-функция вернёт значения, которые интерпретируются как false, метод findLast() возвратит undefined.

Подробнее об интерпретации (приведении) значений к true или false можно прочитать в статье Булев тип.

Как понять

Скопировано

Метод findLast() используется для поиска последнего подходящего по условию значения в массиве. Удобство метода заключается в использовании колбэк-функции, определяющей искомый элемент. Это позволяет применять декларативный подход, что повышает читаемость кода, так как скрывает логику обхода массива.

Метод findLast() имеет те же аргументы и работает так же, как и метод find(), но отличается тем, что обходит массив с конца.

Подсказки

Скопировано

💡 Для определения индекса последнего подходящего по условию элемента следует применять метод findLastIndex().