Array : méthode findLastIndex()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis août 2022.
La méthode findLastIndex() des instances de Array parcourt le tableau dans l'ordre inverse et retourne l'indice du premier élément qui satisfait la fonction de test fournie.
Si aucun élément ne satisfait la fonction de test, -1 est retourné.
Voir aussi la méthode findLast(), qui retourne la valeur du dernier élément qui satisfait la fonction de test (plutôt que son indice).
Exemple interactif
const array = [5, 12, 50, 130, 44];
const isLargeNumber = (element) => element > 45;
console.log(array.findLastIndex(isLargeNumber));
// Résultat attendu: 3
// Indice de l'élément dont la valeur est: 130
Syntaxe
findLastIndex(callbackFn)
findLastIndex(callbackFn, thisArg)
Paramètres
callbackFn-
Une fonction à exécuter pour chaque élément du tableau. Elle doit retourner un équivalent à vrai pour indiquer qu'un élément correspondant a été trouvé, et un équivalent à faux sinon. La fonction est appelée avec les arguments suivants :
thisArgFacultatif-
Une valeur à utiliser comme
thislors de l'exécution decallbackFn. Voir méthodes itératives.
Valeur de retour
Retourne l'indice du dernier élément (ayant l'indice le plus élevé) du tableau qui satisfait le test fourni. Sinon, retourne -1 si aucun élément correspondant n'est trouvé.
Description
La méthode findLastIndex() est une méthode itérative. Elle appelle la fonction fournie callbackFn une fois pour chaque élément du tableau, dans l'ordre décroissant des indices, jusqu'à ce que callbackFn retourne un équivalent à vrai. findLastIndex() retourne alors l'indice de cet élément et cesse d'itérer sur le tableau. Si callbackFn ne retourne jamais un équivalent à vrai, findLastIndex() retourne -1. Consultez la section méthodes itératives pour plus d'informations sur le fonctionnement général de ces méthodes.
callbackFn est invoquée pour chaque indice du tableau, pas seulement pour ceux qui ont une valeur assignée. Les emplacements vides dans les tableaux creux se comportent comme undefined.
La méthode findLastIndex() est générique. Elle attend seulement que la valeur this possède une propriété length et des propriétés indexées par des clés entières.
Exemples
>Trouver l'indice du dernier nombre premier dans le tableau
Dans l'exemple qui suit, on trouve l'indice du dernier élément du tableau qui est un nombre premier (ou on renvoie -1 si le tableau ne contient pas de nombre premier) :
function estPremier(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let diviseur = 3; diviseur <= Math.sqrt(element); diviseur += 2) {
if (element % diviseur === 0) {
return false;
}
}
return true;
}
console.log([4, 6, 8, 12].findLastIndex(estPremier)); // -1, aucun nombre trouvé
console.log([4, 5, 7, 8, 9, 11, 12].findLastIndex(estPremier)); // 5
Note :
L'implémentation de estPremier() est fournie à titre d'exemple seulement. Pour une application réelle, préférez un algorithme fortement mémoïsé tel que le Crible d'Ératosthène afin d'éviter des calculs répétés.
Utiliser le troisième argument de callbackFn
L'argument array est utile si vous voulez accéder à un autre élément du tableau, en particulier lorsque vous ne disposez pas d'une variable qui référence déjà ce tableau. L'exemple suivant utilise d'abord filter() pour extraire les valeurs positives, puis findLastIndex() pour trouver le dernier élément qui est inférieur à ses voisins.
const nombres = [3, -1, 1, 4, 1, 5, 9, 2, 6];
const dernierCreux = nombres
.filter((num) => num > 0)
.findLastIndex((num, idx, arr) => {
// Sans l'argument arr, il est impossible d'accéder facilement au
// tableau intermédiaire sans le sauvegarder dans une variable.
if (idx > 0 && num >= arr[idx - 1]) return false;
if (idx < arr.length - 1 && num >= arr[idx + 1]) return false;
return true;
});
console.log(dernierCreux); // 6
Utiliser findLastIndex() sur des tableaux creux
En cherchant undefined dans un tableau creux, on peut obtenir l'indice d'un emplacement vide.
console.log([1, , 3].findLastIndex((x) => x === undefined)); // 1
Utiliser findLastIndex() sur des objets qui ne sont pas des tableaux
La méthode findLastIndex() lit la propriété length de this puis parcourt les propriétés dont les clés sont des nombres entiers.
const semblableTableau = {
length: 3,
0: 2,
1: 7.3,
2: 4,
3: 3, // ignored by findLastIndex() since length is 3
};
console.log(
Array.prototype.findLastIndex.call(semblableTableau, (x) =>
Number.isInteger(x),
),
); // 2
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.findlastindex> |
Compatibilité des navigateurs
Chargement…
Voir aussi
- Guide des collections indexées guide
- L'objet global
Array - La méthode
Array.prototype.find() - La méthode
Array.prototype.findIndex() - La méthode
Array.prototype.findLast() - La méthode
Array.prototype.indexOf() - La méthode
Array.prototype.lastIndexOf() - La méthode
TypedArray.prototype.findLastIndex() - Prothèse d'émulation de
Array.prototype.findLastIndexdanscore-js(angl.) - Prothèse d'émulation es-shims de
Array.prototype.findLastIndex(angl.)