Movatterモバイル変換


[0]ホーム

URL:


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

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 find()

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 ⁨septembre 2015⁩.

La méthodefind() des instances deArray retourne le premier élément du tableau fourni qui satisfait la fonction de test donnée.Si aucune valeur ne satisfait la fonction de test,undefined est retourné.

  • Si vous avez besoin de l'indice de l'élément trouvé dans le tableau, utilisezfindIndex().
  • Si vous souhaitez trouver l'indice d'une valeur, utilisezindexOf().(C'est similaire àfindIndex(), mais chaque élément est comparé à la valeur pour l'égalité, au lieu d'utiliser une fonction de test.)
  • Si vous souhaitez savoir si une valeurexiste dans un tableau, utilisezincludes().Là encore, chaque élément est comparé à la valeur pour l'égalité, au lieu d'utiliser une fonction de test.
  • Si vous souhaitez savoir si au moins un élément satisfait la fonction de test, utilisezsome().
  • Si vous souhaitez obtenir tous les éléments qui satisfont la fonction de test, utilisezfilter().

Exemple interactif

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

Syntaxe

js
find(callbackFn)find(callbackFn, thisArg)

Paramètres

callbackFn

Une fonction à exécuter pour chaque élément du tableau. Elle doit retourner une valeurvraie pour indiquer qu'un élément correspondant a été trouvé, et une valeurfausse sinon. La fonction est appelée avec les arguments suivants :

element

L'élément actuellement traité dans le tableau.

index

L'indice de l'élément actuellement traité dans le tableau.

array

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

thisArgFacultatif

Une valeur à utiliser commethis lors de l'exécution decallbackFn. Voirméthodes itératives.

Valeur de retour

Le premier élément du tableau qui satisfait la fonction de test fournie.Sinon,undefined est retourné.

Description

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

callbackFn est appelée pour chaque indice du tableau, pas seulement ceux qui ont une valeur assignée. Les cases vides dans lestableaux creux se comportent comme si leur valeur étaitundefined.

La méthodefind() estgénérique. Elle attend seulement que la valeur dethis possède une propriétélength et des propriétés à clé entière.

Exemples

Trouver un objet dans un tableau grâce à une de ses propriétés

js
const inventaire = [  { nom: "pommes", quantité: 2 },  { nom: "bananes", quantité: 0 },  { nom: "cerises", quantité: 5 },];function estCerises(fruit) {  return fruit.nom === "cerises";}console.log(inventaire.find(estCerises));// { nom: 'cerises', quantité: 5}

Utiliser les fonctions fléchées ES6/ES2015

js
const inventaire = [  { nom: "pommes", quantité: 2 },  { nom: "bananes", quantité: 0 },  { nom: "cerises", quantité: 5 },];const resultat = inventaire.find((fruit) => fruit.nom === "cerises");console.log(resultat);// { nom: 'cerises', quantité: 5}

Trouver un nombre premier dans un tableau

L'exemple suivant retourne le premier élément du tableau qui est un nombre premier, ouundefined s'il n'y en a pas.

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

Note :L'implémentation deestPremier() est uniquement destinée à la démonstration. Pour une utilisation réelle, il est préférable d'utiliser un algorithme fortement mémoïsé, comme lecrible d'Ératosthène, afin d'éviter des 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, puisfind() pour trouver le premier élément qui est inférieur à ses voisins.

js
const nombres = [3, -1, 1, 4, 1, 5, 9, 2, 6];const premierCreux = nombres  .filter((num) => num > 0)  .find((num, idx, arr) => {    // Sans l'argument arr, il n'y a aucun 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(premierCreux); // 1

Utiliserfind() sur des tableaux creux

Les cases vides dans les tableaux creuxsont parcourues et sont traitées comme si leur valeur étaitundefined.

js
// Déclare un tableau sans éléments aux indices 2, 3 et 4const array = [0, 1, , , , 5, 6];// Affiche tous les indices, pas seulement ceux avec une valeur assignéearray.find((value, index) => {  console.log("Indice visité", index, "avec la valeur", value);  return false;});// Indice visité 0 avec la valeur 0// Indice visité 1 avec la valeur 1// Indice visité 2 avec la valeur undefined// Indice visité 3 avec la valeur undefined// Indice visité 4 avec la valeur undefined// Indice visité 5 avec la valeur 5// Indice visité 6 avec la valeur 6// Affiche tous les indices, y compris ceux supprimésarray.find((value, index) => {  // Supprime l'élément 5 lors de la première itération  if (index === 0) {    console.log("Suppression de array[5] avec la valeur", array[5]);    delete array[5];  }  // L'élément 5 est tout de même visité même après suppression  console.log("Indice visité", index, "avec la valeur", value);  return false;});// Suppression de array[5] avec la valeur 5// Indice visité 0 avec la valeur 0// Indice visité 1 avec la valeur 1// Indice visité 2 avec la valeur undefined// Indice visité 3 avec la valeur undefined// Indice visité 4 avec la valeur undefined// Indice visité 5 avec la valeur undefined// Indice visité 6 avec la valeur 6

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

La méthodefind() lit la propriétélength dethis puis accède à chaque propriété dont la clé est un entier non négatif inférieur àlength.

js
const objetSimilaireTableau = {  length: 3,  "-1": 0.1, // ignoré par find() car -1 < 0  0: 2,  1: 7.3,  2: 4,};console.log(  Array.prototype.find.call(objetSimilaireTableau, (x) => !Number.isInteger(x)),);// 7.3

Spécifications

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

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