JavaScriptTableaux

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
Sur cette page

Exemple

#
JavaScript
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'))
Console
1
2
-1

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

#
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 de this à l’intérieur de la fonction.

Plus d’exemples

#
Tout ce qui suit la dernière erreur
JavaScript
const log = ['ok', 'erreur', 'ok', 'erreur', 'ok', 'ok']
const lastError = log.findLastIndex((entry) => entry === 'erreur')

console.log(lastError)
console.log(log.slice(lastError + 1))
Console
3
['ok', 'ok']

Si le journal ne contient aucune erreur, findLastIndex() renverra -1, et slice(0) tout le tableau. C’est justement le résultat souhaité ici.

Marquer la tentative récente la plus faible
JavaScript
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])
Console
2
{ id: 3, score: 55, retry: true }

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 -1 avant 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

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.