JavaScriptTableaux

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

Exemple

#
JavaScript
const answers = ['A', 'C', 'B', 'C', 'D']

console.log(answers.lastIndexOf('C'))
console.log(answers.indexOf('C'))
console.log(answers.lastIndexOf('E'))
Console
3
1
-1

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

#
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

#
Chercher avant la dernière occurrence
JavaScript
const logins = ['lea', 'lucas', 'lea', 'emma', 'lea']

const last = logins.lastIndexOf('lea')
const previous = logins.lastIndexOf('lea', last - 1)

console.log(last, previous)
Console
4 2
Vérifier les doublons
JavaScript
const tags = ['html', 'css', 'js', 'css']
const isUnique = (tag) => tags.indexOf(tag) === tags.lastIndexOf(tag)

console.log(isUnique('html'))
console.log(isUnique('css'))
Console
true
false
Piège : NaN
JavaScript
const values = [1, NaN, 3]

console.log(values.lastIndexOf(NaN))
console.log(values.findLastIndex(Number.isNaN))
Console
-1
1

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’indice 0 est aussi une correspondance valide, mais se comporte comme faux dans une condition if.
  • 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

#

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