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 juillet 2015.
La méthode forEach() des instances de Array exécute une fonction fournie une fois pour chaque élément du tableau.
La fonction à exécuter pour chaque élément du tableau. Sa valeur de retour est ignorée. La fonction est appelée avec les arguments suivants :
elementL'élément en cours de traitement dans le tableau.
indexL'indice de l'élément en cours de traitement dans le tableau.
arrayLe tableau sur lequel la méthode forEach() a été appelée.
thisArg FacultatifLa valeur à utiliser comme this lors de l'exécution de la fonction callbackFn. Voir les méthodes itératives.
Aucune (undefined).
La méthode forEach() est une méthode itérative. Elle appelle la fonction callbackFn fournie une fois pour chaque élément du tableau, dans l'ordre croissant des indices. Contrairement à map(), forEach() renvoie toujours undefined et n'est pas chaînable. L'usage typique est d'exécuter des effets de bord à la fin d'une chaîne. Consultez la section méthodes itératives pour plus d'informations sur le fonctionnement général de ces méthodes.
La fonction callbackFn est appelée uniquement pour les indices du tableau qui ont une valeur attribuée. Elle n'est pas appelée pour les cases vides dans un tableau creux.
La méthode forEach() est générique. Elle attend seulement que la valeur de this possède une propriété length et des propriétés à clés entières.
Il n'existe aucun moyen d'arrêter ou de sortir d'une boucle forEach() autrement qu'en lançant une exception. Si vous avez besoin de ce comportement, la méthode forEach() n'est pas adaptée.
L'arrêt anticipé peut être réalisé avec des instructions de boucle comme for, for...of et for...in. Les méthodes de tableau comme every(), some(), find(), et findIndex() arrêtent aussi l'itération dès que ce n'est plus nécessaire.
forEach() attend une fonction synchrone — elle n'attend pas les promesses. Veillez à bien comprendre les implications de l'utilisation de promesses (ou de fonctions asynchrones) comme fonctions de rappel de forEach.
Pour exécuter une série d'opérations asynchrones séquentiellement ou en concurrence, voir la section composition de promesses.
Note : Pour afficher le contenu d'un tableau dans la console, vous pouvez utiliser console.table(), qui affiche une version mise en forme du tableau.
L'exemple suivant illustre une autre approche, utilisant forEach().
Le code suivant affiche une ligne pour chaque élément d'un tableau :
L'exemple (artificiel) suivant met à jour les propriétés d'un objet à partir de chaque entrée du tableau :
Puisque le paramètre thisArg (this) est fourni à forEach(), il est transmis à callback à chaque appel. La fonction de rappel l'utilise comme valeur de this.
Note : Si la fonction de rappel passée était une fonction fléchée, le paramètre thisArg pourrait être omis, car toutes les fonctions fléchées lient lexicalement la valeur de this.
Le code suivant crée une copie d'un objet donné.
Il existe différentes manières de copier un objet. Ce qui suit n'est qu'une façon de faire et est présenté pour expliquer le fonctionnement de Array.prototype.forEach() en utilisant les fonctions utilitaires Object.*.
L'exemple suivant est uniquement présent à des fins d'apprentissage. Si vous souhaitez aplatir un tableau en utilisant des méthodes intégrées, vous pouvez utiliser Array.prototype.flat().
L'argument array 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'abord filter() pour extraire les valeurs positives, puis utilise forEach() pour afficher ses voisins.
La fonction de rappel n'est pas appelée pour la valeur manquante à l'indice 2.
La méthode forEach() lit la propriété length de this puis accède à chaque propriété dont la clé est un entier non négatif inférieur à length.
| ECMAScript® 2027 Language Specification # sec-array.prototype.foreach |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 6 nov. 2025 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.