Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. Array
  6. findLast()

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 EnglishAlways switch to English

Array : méthode findLast()

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éthodefindLast() des instances deArray parcourt le tableau en ordre inverse et retourne la valeur du premier élément qui satisfait la fonction de test fournie.Si aucun élément ne satisfait la fonction de test,undefined est retourné.

Si vous souhaitez :

  • lepremier élément correspondant, utilisezfind().
  • l'indice du dernier élément correspondant dans le tableau, utilisezfindLastIndex().
  • l'indice d'une valeur, utilisezindexOf().(Cette méthode est semblable àfindIndex(), mais compare chaque élément à la valeur indiquée au lieu d'utiliser une fonction de test.)
  • savoir si une valeurexiste dans un tableau, utilisezincludes().Là encore, chaque élément est comparé à la valeur indiquée au lieu d'utiliser une fonction de test.
  • savoir si un élément satisfait la fonction de test fournie, utilisezsome().

Exemple interactif

const array = [5, 12, 50, 130, 44];const found = array.findLast((element) => element > 45);console.log(found);// Résultat attendu : 130

Syntaxe

js
findLast(callbackFn)findLast(callbackFn, thisArg)

Paramètres

callbackFn

La fonction à exécuter pour chaque élément du tableau. Elle doit renvoyer une valeuréquivalente àtrue pour indiquer qu'un élément correspondant a été trouvé, et une valeuréquivalente àfalse sinon. La fonction est appelée avec les arguments suivants :

element

La valeur de l'élément courant du tableau en cours de traitement.

index

L'indice de l'élément courant du tableau en cours de traitement.

array

Le tableau sur lequel la méthodefindLast() a été appelée.

thisArgFacultatif

La valeur à utiliser commethis lors de l'exécution decallbackFn. Voirles méthodes itératives.

Valeur de retour

Le dernier élément du tableau (celui avec l'indice le plus élevé) qui satisfait la fonction de test fournie ;undefined si aucun élément correspondant n'est trouvé.

Description

La méthodefindLast() est uneméthode itérative. Elle appelle la fonction fourniecallbackFn une fois pour chaque élément d'un tableau dans l'ordre décroissant des indices, jusqu'à ce quecallbackFn retourne une valeurvrai.findLast() retourne alors cet élément et arrête l'itération du tableau. SicallbackFn ne retourne jamais de valeur vrai,findLast() retourneundefined. Lisez la sectionméthodes itératives pour plus d'informations sur le fonctionnement général de ces méthodes.

callbackFn est appelée pourchaque indice du tableau, pas seulement ceux ayant une valeur affectée. Les emplacements vides destableaux creux se comportent commeundefined.

La méthodefindLast() estgénérique. Elle attend uniquement que la valeurthis possède une propriétélength et des propriétés à clés entières.

Exemples

Trouver le dernier objet d'un tableau dont la propriété correspond

Dans cet exemple, on illustre comment créer un test manipulant les propriétés des éléments du tableau.

js
const inventaire = [  { nom: "pommes", quantite: 2 },  { nom: "bananes", quantite: 0 },  { nom: "poissons", quantite: 1 },  { nom: "cerises", quantite: 5 },];// Renvoie true si le stock est faiblefunction pasSuffisant(item) {  return item.quantite < 2;}console.log(inventaire.findLast(pasSuffisant));// { nom: "poissons", quantite: 1 }

En utilisant les fonctions fléchées et la décomposition

L'exemple précédent peut être écrit à l'aide d'une fonction fléchée etune décomposition d'objet :

js
const inventaire = [  { nom: "pommes", quantite: 2 },  { nom: "bananes", quantite: 0 },  { nom: "poissons", quantite: 1 },  { nom: "cerises", quantite: 5 },];const resultat = inventaire.findLast(({ quantite }) => quantite < 2);console.log(resultat);// { name: "poissons", quantite: 1 }

Trouver le dernier nombre premier d'un tableau

Dans l'exemple suivant, on trouve le dernier élément du tableau qui est un nombre premier (ou on renvoieundefined si le tableau ne contient pas de nombre premier) :

js
function estPremier(n) {  if (n < 2) {    return false;  }  if (n % 2 === 0) {    return n === 2;  }  for (let diviseur = 3; diviseur * diviseur <= n; diviseur += 2) {    if (n % diviseur === 0) {      return false;    }  }  return true;}console.log([4, 6, 8, 12].findLast(estPremier)); // undefined, aucun trouvéconsole.log([4, 5, 7, 8, 9, 11, 12].findLast(estPremier)); // 11

Note :L'implémentation deestPremier() est uniquement à des fins de démonstration. Pour une application réelle, il est préférable d'utiliser un algorithme fortement mémoïsé comme lecrible d'Ératosthène afin d'éviter les calculs répétés.

Utiliser le troisième argument decallbackFn

L'argumentarray est utile si vous souhaitez accéder à un autre élément du tableau, en particulier lorsque vous n'avez pas de variable existante qui fait référence au tableau. L'exemple suivant utilise d'abordfilter() pour extraire les valeurs positives puis utilisefindLast() pour trouver le dernier élément qui est inférieur à ses voisins.

js
const nombres = [3, -1, 1, 4, 1, 5, 9, 2, 6];const dernierCreux = nombres  .filter((num) => num > 0)  .findLast((num, idx, arr) => {    // Sans l'argument arr, il n'y a pas de moyen simple d'accéder    // au tableau intermédiaire sans le stocker 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); // 2

UtiliserfindLast() sur des tableaux creux

Les emplacements vides d'un tableausont parcourus. Ils sont traités comme s'ils avaient la valeurundefined.

js
// On déclare un tableau sans élément pour les indices 2, 3, et 4const tableau = [0, 1, , , , 5, 6];// Le parcourt suivant montre tous les indices et pas uniquement// ceux avec des valeurs affectéestableau.findLast((valeur, index) => {  console.log(`Parcours de l'index ${index} avec la valeur ${valeur}`);});// Parcours de l'index 6 avec la valeur 6// Parcours de l'index 5 avec la valeur 5// Parcours de l'index 4 avec la valeur undefined// Parcours de l'index 3 avec la valeur undefined// Parcours de l'index 2 avec la valeur undefined// Parcours de l'index 1 avec la valeur 1// Parcours de l'index 0 avec la valeur 0// Tous les indices sont affichés, y compris ceux qui sont// suppriméstableau.findLast((value, index) => {  // On supprime l'élément 5 à la première itération  if (index === 6) {    console.log(`Suppression de array[5] avec la valeur ${tableau[5]}`);    delete tableau[5];  }  // L'élément 5 est toujours parcouru, même supprimé  console.log(`Parcours de l'index ${index} avec la valeur ${value}`);});// Suppression de array[5] avec la valeur 5// Parcours de l'index 6 avec la valeur 6// Parcours de l'index 5 avec la valeur undefined// Parcours de l'index 4 avec la valeur undefined// Parcours de l'index 3 avec la valeur undefined// Parcours de l'index 2 avec la valeur undefined// Parcours de l'index 1 avec la valeur 1// Parcours de l'index 0 avec la valeur 0

AppelerfindLast() sur des objets qui ne sont pas des tableaux

La méthodefindLast() lit la propriétélength dethis puis parcourt les propriétés dont les clés sont des nombres entiers.

js
const semblableTableau = {  length: 3,  0: 2,  1: 7.3,  2: 4,  3: 3, // ignoré par findLast() car length vaut 3};console.log(  Array.prototype.findLast.call(semblableTableau, (x) => Number.isInteger(x)),); // 4

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.findlast

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp