Array. prototype. findLastIndex()
Zwraca indeks ostatniego elementu spełniającego warunek, szukając od końca, albo -1.
- Zwraca
- Indeks ostatniego pasującego elementu albo
-1. - Zmienia oryginał
- Nie
Przykład
#const lessons = [
{ title: 'Zmienne', done: true },
{ title: 'Pętle', done: true },
{ title: 'Funkcje', done: false },
{ title: 'Tablice', done: false }
]
console.log(lessons.findLastIndex((lesson) => lesson.done))
console.log(lessons.findIndex((lesson) => !lesson.done))
console.log(lessons.findLastIndex((lesson) => lesson.title === 'Klasy'))Definicja i zastosowanie
#Metoda findLastIndex() sprawdza elementy funkcją testującą, zaczynając od końca tablicy. Zwraca indeks pierwszego trafienia, czyli ostatniego pasującego elementu w kolejności tablicy. Gdy żaden element nie spełnia warunku, wynikiem jest -1.
To odpowiednik findIndex() do szukania od tyłu. Przydaje się przy danych ułożonych chronologicznie, gdy interesuje Cię najnowszy wpis: ostatnia ukończona lekcja, ostatnia nieudana próba logowania albo ostatnia wiadomość od mentora.
Indeks pozwala nie tylko odczytać element, ale też go podmienić, usunąć przez splice() albo wyciąć fragment tablicy przez slice(). Jeśli potrzebujesz tylko samego elementu, prostsze jest findLast().
Składnia
#array.findLastIndex(callbackFn)
array.findLastIndex(callbackFn, thisArg)Parametry
#callbackFn
function (element, index, array)
Funkcja testująca wywoływana od ostatniego elementu w stronę pierwszego.thisArg
opcjonalny
Wartośćthiswewnątrz funkcji.
Więcej przykładów
#const log = ['ok', 'błąd', 'ok', 'błąd', 'ok', 'ok']
const lastError = log.findLastIndex((entry) => entry === 'błąd')
console.log(lastError)
console.log(log.slice(lastError + 1))Gdy w logu nie ma żadnego błędu, findLastIndex() zwróci -1, a slice(0) całą tablicę. Tutaj to akurat pożądany wynik.
const attempts = [
{ id: 1, score: 40 },
{ id: 2, score: 85 },
{ id: 3, score: 55 }
]
const index = attempts.findLastIndex((attempt) => attempt.score < 60)
if (index !== -1) {
attempts[index] = { ...attempts[index], retry: true }
}
console.log(index)
console.log(attempts[index])Obsługa przeglądarek
#Szeroko dostępne · od 2022 roku
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- Sprawdzaj wynik
-1, zanim użyjesz indeksu. Przypisanie doarray[-1]nie zmieni żadnego elementu, tylko doda do tablicy dziwną właściwość o nazwie „-1”. - Do prostych wartości wystarczy
lastIndexOf().findLastIndex()jest potrzebne, gdy szukasz według warunku, np. pola obiektu.
Powiązane hasła
#- Array.prototype.findLast()Zwraca ostatni element spełniający warunek, przeszukując tablicę od końca.
- Array.prototype.findIndex()Zwraca indeks pierwszego elementu spełniającego warunek albo -1.
- Array.prototype.lastIndexOf()Zwraca indeks ostatniego wystąpienia wartości w tablicy albo -1, gdy jej nie ma.
- Array.prototype.splice()Usuwa, zastępuje lub wstawia elementy w miejscu, zmieniając tablicę.
Widzisz błąd albo brakuje przykładu? Napisz do nas.