[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/findLastIndex [Back]  [Original]

Array : mthode findLastIndex() - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Array : mthode findLastIndex()

Baseline Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis aot 2022.

La mthode findLastIndex() des instances de Array parcourt le tableau dans l'ordre inverse et retourne l'indice du premier lment qui satisfait la fonction de test fournie. Si aucun lment ne satisfait la fonction de test, -1 est retourn.

Voir aussi la mthode findLast(), qui retourne la valeur du dernier lment qui satisfait la fonction de test (plutt que son indice).

Dans cet article

Exemple interactif

const array = [5, 12, 50, 130, 44];

const isLargeNumber = (element) => element > 45;

console.log(array.findLastIndex(isLargeNumber));
// Rsultat attendu: 3
// Indice de l'lment dont la valeur est: 130

Syntaxe

js
findLastIndex(callbackFn)
findLastIndex(callbackFn, thisArg)

Paramtres

callbackFn

Une fonction excuter pour chaque lment du tableau. Elle doit retourner un quivalent vrai pour indiquer qu'un lment correspondant a t trouv, et un quivalent faux sinon. La fonction est appele avec les arguments suivants :

element

L'lment courant en cours de traitement dans le tableau.

index

L'indice de l'lment courant en cours de traitement dans le tableau.

array

Le tableau sur lequel findLastIndex() a t appel.

thisArg Facultatif

Une valeur utiliser comme this lors de l'excution de callbackFn. Voir mthodes itratives.

Valeur de retour

Retourne l'indice du dernier lment (ayant l'indice le plus lev) du tableau qui satisfait le test fourni. Sinon, retourne -1 si aucun lment correspondant n'est trouv.

Description

La mthode findLastIndex() est une mthode itrative. Elle appelle la fonction fournie callbackFn une fois pour chaque lment du tableau, dans l'ordre dcroissant des indices, jusqu' ce que callbackFn retourne un quivalent vrai. findLastIndex() retourne alors l'indice de cet lment et cesse d'itrer sur le tableau. Si callbackFn ne retourne jamais un quivalent vrai, findLastIndex() retourne -1. Consultez la section mthodes itratives pour plus d'informations sur le fonctionnement gnral de ces mthodes.

callbackFn est invoque pour chaque indice du tableau, pas seulement pour ceux qui ont une valeur assigne. Les emplacements vides dans les tableaux creux se comportent comme undefined.

La mthode findLastIndex() est gnrique. Elle attend seulement que la valeur this possde une proprit length et des proprits indexes par des cls entires.

Exemples

Trouver l'indice du dernier nombre premier dans le tableau

Dans l'exemple qui suit, on trouve l'indice du dernier lment du tableau qui est un nombre premier (ou on renvoie -1 si le tableau ne contient pas de nombre premier) :

js
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'implmentation de estPremier() est fournie titre d'exemple seulement. Pour une application relle, prfrez un algorithme fortement mmos tel que le Crible d'ratosthne afin d'viter des calculs rpts.

Utiliser le troisime argument de callbackFn

L'argument array est utile si vous voulez accder un autre lment du tableau, en particulier lorsque vous ne disposez pas d'une variable qui rfrence dj ce tableau. L'exemple suivant utilise d'abord filter() pour extraire les valeurs positives, puis findLastIndex() pour trouver le dernier lment qui est infrieur ses voisins.

js
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'accder facilement au
    // tableau intermdiaire 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.

js
console.log([1, , 3].findLastIndex((x) => x === undefined)); // 1

Utiliser findLastIndex() sur des objets qui ne sont pas des tableaux

La mthode findLastIndex() lit la proprit length de this puis parcourt les proprits dont les cls sont des nombres entiers.

js
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

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-array.prototype.findlastindex

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page