Array : méthodelastIndexOf()
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 juillet 2015.
La méthode lastIndexOf() des instances de Array retourne le dernier index auquel un élément donné peut être trouvé dans le tableau, ou -1 s'il n'est pas présent. Le tableau est parcouru à l'envers, en commençant à fromIndex.
Exemple interactif
const animals = ["Dodo", "Tiger", "Penguin", "Dodo"];
console.log(animals.lastIndexOf("Dodo"));
// Résultat attendu : 3
console.log(animals.lastIndexOf("Tiger"));
// Résultat attendu : 1
Syntaxe
lastIndexOf(searchElement)
lastIndexOf(searchElement, fromIndex)
Paramètres
searchElement-
L'élément à rechercher dans le tableau.
fromIndexFacultatif-
L'index de départ (basé sur zéro) à partir duquel commencer la recherche à rebours, converti en entier.
- Un index négatif compte à rebours depuis la fin du tableau — si
-array.length <= fromIndex < 0, on utilisefromIndex + array.length. - Si
fromIndex < -array.length, le tableau n'est pas parcouru et-1est retourné. On peut considérer conceptuellement que la recherche commence à une position inexistante avant le début du tableau et recule à partir de là. Aucun élément n'est rencontré, doncsearchElementn'est jamais trouvé. - Si
fromIndex >= array.lengthou sifromIndexest omis ou vautundefined, on utilisearray.length - 1, ce qui fait parcourir tout le tableau. On peut considérer conceptuellement que la recherche commence à une position inexistante après la fin du tableau et recule à partir de là. Elle atteint finalement la vraie fin du tableau, puis commence à parcourir les éléments réels à rebours.
- Un index négatif compte à rebours depuis la fin du tableau — si
Valeur de retour
Le dernier index de l'élément searchElement dans le tableau ; -1 si l'élément n'est pas trouvé.
Description
La méthode lastIndexOf() compare l'élément searchElement aux éléments du tableau en utilisant l'égalité stricte (le même algorithme que l'opérateur ===). Les valeurs NaN ne sont jamais considérées comme égales, donc lastIndexOf() retourne toujours -1 lorsque l'élément recherché est NaN.
La méthode lastIndexOf() ignore les emplacements vides dans un tableau creux.
La méthode lastIndexOf() est générique. Elle attend uniquement que la valeur de this possède une propriété length et des propriétés à clés entières.
Exemples
>Utiliser lastIndexOf()
Dans l'exemple suivant, on utilise lastIndexOf() afin de situer une valeur dans un tableau.
var tableau = [2, 5, 9, 2];
tableau.lastIndexOf(2); // 3
tableau.lastIndexOf(7); // -1
tableau.lastIndexOf(2, 3); // 3
tableau.lastIndexOf(2, 2); // 0
tableau.lastIndexOf(2, -2); // 0
tableau.lastIndexOf(2, -1); // 3
Vous ne pouvez pas utiliser lastIndexOf() pour rechercher la valeur NaN.
const tableau = [NaN];
tableau.lastIndexOf(NaN); // -1
Trouver toutes les occurrences d'un élément
L'exemple suivant utilise lastIndexOf pour trouver tous les index (indices) d'un élément dans un tableau donné, en utilisant push() pour les ajouter dans un autre tableau quand ils sont trouvés.
var indices = [];
var tableau = ["a", "b", "a", "c", "a", "d"];
var élément = "a";
var idx = tableau.lastIndexOf(élément);
while (idx !== -1) {
indices.push(idx);
idx = idx > 0 ? tableau.lastIndexOf(élément, idx - 1) : -1;
}
console.log(indices);
// [4, 2, 0]
Remarquez que nous avons dû traiter le cas de idx === 0 séparément (idx > 0) parce que l'élément sera toujours trouvé, indépendamment du paramètre de fromIndex, si c'est le premier élément du tableau. C'est une différence avec la méthode indexOf().
Utiliser lastIndexOf() sur un tableau creux
Vous ne pouvez pas utiliser lastIndexOf() pour rechercher des emplacements vides dans un tableau creux.
console.log([1, , 3].lastIndexOf(undefined)); // -1
Appeler lastIndexOf() sur des objets qui ne sont pas des tableaux
La méthode lastIndexOf() lit la propriété length de this puis accède à chaque propriété dont la clé est un entier non négatif inférieur à length.
const objetSimilaireTableau = {
length: 3,
0: 2,
1: 3,
2: 2,
3: 5, // ignoré par lastIndexOf() car length vaut 3
};
console.log(Array.prototype.lastIndexOf.call(objetSimilaireTableau, 2));
// 2
console.log(Array.prototype.lastIndexOf.call(objetSimilaireTableau, 5));
// -1
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.lastindexof> |
Compatibilité des navigateurs
Voir aussi
- Guide des collections indexées
- L'objet global
Array - La méthode
Array.prototype.findIndex() - La méthode
Array.prototype.findLastIndex() - La méthode
Array.prototype.indexOf() - La méthode
TypedArray.prototype.lastIndexOf() - La méthode
String.prototype.lastIndexOf() - Prothèse d'émulation de
Array.prototype.lastIndexOfdans core-js (angl.) - Prothèse d'émulation es-shims de
Array.prototype.lastIndexOf(angl.)