Array. prototype. findLastIndex()
Renvoie l’indice du dernier élément qui remplit la condition, en cherchant depuis la fin, ou -1.
- Renvoie
- L’indice du dernier élément correspondant, ou
-1. - Modifie l’original
- Non
Exemple
#const lessons = [
{ title: 'Variables', done: true },
{ title: 'Boucles', done: true },
{ title: 'Fonctions', done: false },
{ title: 'Tableaux', done: false }
]
console.log(lessons.findLastIndex((lesson) => lesson.done))
console.log(lessons.findIndex((lesson) => !lesson.done))
console.log(lessons.findLastIndex((lesson) => lesson.title === 'Classes'))Définition et utilisation
#La méthode findLastIndex() teste les éléments avec une fonction, en commençant par la fin du tableau. Elle renvoie l’indice de la première correspondance trouvée, c’est-à-dire du dernier élément correspondant dans l’ordre du tableau. Si aucun élément ne remplit la condition, le résultat est -1.
C’est l’équivalent de findIndex() pour chercher à partir de la fin. Utile avec des données chronologiques, quand c’est l’entrée la plus récente qui vous intéresse : la dernière leçon terminée, la dernière tentative de connexion échouée ou le dernier message d’un mentor.
L’indice permet non seulement de lire l’élément, mais aussi de le remplacer, de le supprimer avec splice() ou d’extraire une partie du tableau avec slice(). Si vous n’avez besoin que de l’élément lui-même, findLast() est plus simple.
Syntaxe
#array.findLastIndex(callbackFn)
array.findLastIndex(callbackFn, thisArg)Paramètres
#callbackFn
function (element, index, array)
Fonction de test, appelée à partir du dernier élément vers le premier.thisArg
optionnel
Valeur dethisà l’intérieur de la fonction.
Plus d’exemples
#const log = ['ok', 'erreur', 'ok', 'erreur', 'ok', 'ok']
const lastError = log.findLastIndex((entry) => entry === 'erreur')
console.log(lastError)
console.log(log.slice(lastError + 1))Si le journal ne contient aucune erreur, findLastIndex() renverra -1, et slice(0) tout le tableau. C’est justement le résultat souhaité ici.
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])Compatibilité des navigateurs
#Largement disponible · depuis 2022
Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.
- Chrome
- Edge
- Firefox
- Safari
Bonnes pratiques
#- Vérifiez si le résultat est
-1avant d’utiliser l’indice. Une affectation àarray[-1]ne modifie aucun élément, elle ajoute seulement au tableau une propriété bizarre nommée « -1 ». - Pour des valeurs simples,
lastIndexOf()suffit.findLastIndex()est nécessaire quand vous cherchez selon une condition, par exemple un champ d’objet.
Entrées associées
#- Array.prototype.findLast()Renvoie le dernier élément qui remplit la condition, en parcourant le tableau depuis la fin.
- Array.prototype.findIndex()Renvoie l’indice du premier élément qui remplit la condition, ou -1.
- Array.prototype.lastIndexOf()Renvoie l’indice de la dernière occurrence d’une valeur dans le tableau, ou -1 si elle n’y est pas.
- Array.prototype.splice()Supprime, remplace ou insère des éléments sur place, en modifiant le tableau.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.