| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/find | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
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 mthode find() des instances de Array retourne le premier lment du tableau fourni qui satisfait la fonction de test donne.
Si aucune valeur ne satisfait la fonction de test, undefined est retourn.
findIndex().indexOf().
(C'est similaire findIndex(), mais chaque lment est compar la valeur pour l'galit, au lieu d'utiliser une fonction de test.)includes().
L encore, chaque lment est compar la valeur pour l'galit, au lieu d'utiliser une fonction de test.some().filter().const array = [5, 12, 8, 130, 44];
const found = array.find((element) => element > 10);
console.log(found);
// Rsultat attendu : 12
find(callbackFn)
find(callbackFn, thisArg)
callbackFnUne fonction excuter pour chaque lment du tableau. Elle doit retourner une valeur vraie pour indiquer qu'un lment correspondant a t trouv, et une valeur fausse sinon. La fonction est appele avec les arguments suivants :
thisArg FacultatifUne valeur utiliser comme this lors de l'excution de callbackFn. Voir mthodes itratives.
Le premier lment du tableau qui satisfait la fonction de test fournie.
Sinon, undefined est retourn.
La mthode find() est une mthode itrative. Elle appelle la fonction callbackFn fournie une fois pour chaque lment du tableau, dans l'ordre croissant des indices, jusqu' ce que callbackFn retourne une valeur vraie. find() retourne alors cet lment et arrte l'itration. Si callbackFn ne retourne jamais de valeur vraie, find() retourne undefined. Consultez la section mthodes itratives pour plus d'informations sur le fonctionnement gnral de ces mthodes.
callbackFn est appele pour chaque indice du tableau, pas seulement ceux qui ont une valeur assigne. Les cases vides dans les tableaux creux se comportent comme si leur valeur tait undefined.
La mthode find() est gnrique. Elle attend seulement que la valeur de this possde une proprit length et des proprits cl entire.
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}
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}
L'exemple suivant retourne le premier lment du tableau qui est un nombre premier, ou undefined s'il n'y en a pas.
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'implmentation de estPremier() est uniquement destine la dmonstration. Pour une utilisation relle, il est prfrable d'utiliser un algorithme fortement mmos, comme le crible d'ratosthne, afin d'viter des calculs rpts.
callbackFnL'argument array est utile si vous souhaitez accder un autre lment du tableau, en particulier lorsque vous n'avez pas de variable existante qui fait rfrence au tableau. L'exemple suivant utilise d'abord filter() pour extraire les valeurs positives, puis find() pour trouver le premier lment qui est infrieur ses voisins.
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'accder
// au tableau intermdiaire 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
find() sur des tableaux creuxLes cases vides dans les tableaux creux sont parcourues et sont traites comme si leur valeur tait undefined.
// Dclare un tableau sans lments aux indices 2, 3 et 4
const array = [0, 1, , , , 5, 6];
// Affiche tous les indices, pas seulement ceux avec une valeur assigne
array.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 supprims
array.find((value, index) => {
// Supprime l'lment 5 lors de la premire itration
if (index === 0) {
console.log("Suppression de array[5] avec la valeur", array[5]);
delete array[5];
}
// L'lment 5 est tout de mme visit mme aprs 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
find() sur des objets qui ne sont pas des tableauxLa mthode find() lit la proprit length de this puis accde chaque proprit dont la cl est un entier non ngatif infrieur length.
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
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.find |
ArrayArray.prototype.findIndex()Array.prototype.findLast()Array.prototype.findLastIndex()Array.prototype.includes()Array.prototype.filter()Array.prototype.every()Array.prototype.some()TypedArray.prototype.find()Array.prototype.find (angl.)Array.prototype.find (angl.)Cette page a t modifie le 6 nov. 2025 par les contributeurices du MDN.
Arrayat()concat()copyWithin()entries()every()fill()filter()find()findIndex()findLast()findLastIndex()flat()flatMap()forEach()includes()indexOf()join()keys()lastIndexOf()map()pop()push()reduce()reduceRight()reverse()shift()slice()some()sort()splice()toLocaleString()toReversed()toSorted()toSpliced()toString()unshift()values()with()[Symbol.iterator]()Object/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |