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.
- Renvoie
- L’indice de la dernière occurrence, ou
-1. - Modifie l’original
- Non
Exemple
#const answers = ['A', 'C', 'B', 'C', 'D']
console.log(answers.lastIndexOf('C'))
console.log(answers.indexOf('C'))
console.log(answers.lastIndexOf('E'))Définition et utilisation
#La méthode lastIndexOf() parcourt le tableau depuis la fin et renvoie l’indice du dernier élément égal à la valeur donnée. Si cette valeur n’existe pas, le résultat est -1. L’indice se compte toujours depuis le début du tableau, même si la recherche elle-même se fait depuis la fin.
Elle compare strictement, comme l’opérateur === : le nombre 3 et la chaîne "3" sont pour elle des valeurs différentes, et NaN n’est jamais trouvé. Les objets sont comparés par référence, donc pour chercher un objet selon un de ses champs, utilisez findLastIndex().
Le second argument indique l’indice à partir duquel la recherche repart vers le début. Vous pouvez ainsi trouver l’avant-dernière occurrence ou limiter la recherche au début du tableau.
Syntaxe
#array.lastIndexOf(searchElement)
array.lastIndexOf(searchElement, fromIndex)Paramètres
#searchElement
valeur quelconque
Valeur recherchée.fromIndex
optionnel
Indice à partir duquel la recherche commence, en remontant vers le début. Par défaut, le dernier élément. Une valeur négative compte depuis la fin.
Plus d’exemples
#const logins = ['lea', 'lucas', 'lea', 'emma', 'lea']
const last = logins.lastIndexOf('lea')
const previous = logins.lastIndexOf('lea', last - 1)
console.log(last, previous)const tags = ['html', 'css', 'js', 'css']
const isUnique = (tag) => tags.indexOf(tag) === tags.lastIndexOf(tag)
console.log(isUnique('html'))
console.log(isUnique('css'))const values = [1, NaN, 3]
console.log(values.lastIndexOf(NaN))
console.log(values.findLastIndex(Number.isNaN))lastIndexOf() compare avec ===, et NaN n’est même pas égal à lui-même. Avec la fonction Number.isNaN, findLastIndex() s’en sort très bien.
Compatibilité des navigateurs
#Largement disponible
Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.
- Chrome
- Edge
- Firefox
- Safari
Bonnes pratiques
#- Comparez explicitement le résultat à
-1. L’indice0est aussi une correspondance valide, mais se comporte comme faux dans une conditionif. - La comparaison
indexOf(x) === lastIndexOf(x)indique si une valeur n’a pas de doublon. Notez que pour une valeur totalement absente, les deux résultats valent-1.
Entrées associées
#- Array.prototype.indexOf()Renvoie l’indice de la première occurrence d’une valeur, ou -1.
- Array.prototype.findLastIndex()Renvoie l’indice du dernier élément qui remplit la condition, en cherchant depuis la fin, ou -1.
- Array.prototype.includes()Vérifie si un tableau contient la valeur donnée.
- String.prototype.lastIndexOf()Renvoie l’indice de la dernière occurrence du texte donné dans une chaîne, ou -1 s’il est absent.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.