| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex | [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 findIndex() des instances de Array retourne l'indice du premier lment d'un tableau qui satisfait la fonction de test fournie.
Si aucun lment ne satisfait la fonction de test, -1 est retourn.
Voir aussi la mthode find(), qui retourne le premier lment qui satisfait la fonction de test (et non son indice).
const array = [5, 12, 8, 130, 44];
const isLargeNumber = (element) => element > 13;
console.log(array.findIndex(isLargeNumber));
// Rsultat attendu : 3
findIndex(callbackFn)
findIndex(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.
Un index d'un lment du tableau qui russit le test dcrit, -1 sinon.
La mthode findIndex() 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. findIndex() retourne alors l'indice de cet lment et arrte l'itration. Si callbackFn ne retourne jamais de valeur vraie, findIndex() retourne -1. 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 findIndex() est gnrique. Elle attend seulement que la valeur de this possde une proprit length et des proprits cl entire.
L'exemple suivant retourne l'indice du premier lment du tableau qui est un nombre premier, ou -1 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, 9, 12].findIndex(estPremier)); // -1, aucun trouv
console.log([4, 6, 7, 9, 12].findIndex(estPremier)); // 2 (array[2] vaut 7)
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 findIndex() 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)
.findIndex((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
findIndex() sur des tableaux creuxVous pouvez rechercher undefined dans un tableau creux et obtenir l'indice d'une case vide.
console.log([1, , 3].findIndex((x) => x === undefined)); // 1
findIndex() sur des objets qui ne sont pas des tableauxLa mthode findIndex() lit la proprit length de this puis accde chaque proprit dont la cl est un entier non ngatif infrieur length.
const objetSimilaireTableauemblantTableau = {
length: 3,
"-1": 0.1, // ignor par findIndex() car -1 < 0
0: 2,
1: 7.3,
2: 4,
};
console.log(
Array.prototype.findIndex.call(
objetSimilaireTableauemblantTableau,
(x) => !Number.isInteger(x),
),
); // 1
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.findindex |
ArrayArray.prototype.find()Array.prototype.findLast()Array.prototype.findLastIndex()Array.prototype.indexOf()Array.prototype.lastIndexOf()TypedArray.prototype.findIndex()Array.prototype.findIndex (angl.)Array.prototype.findIndex (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 |