La méthode forEach()
permet d'exécuter une fonction donnée, une fois pour chaque valeur de l'ensemble Set
. L'ordre appliqué est celui dans lequel les valeurs ont été ajoutées à l'ensemble.
Syntaxe
monSet.forEach(callback[, thisArg])
Valeur de retour
Paramètres
callback
- La fonction qu'on souhaite exécuter pour chaque élément.
thisArg
- Paramètre optionnel. La valeur à utiliser comme
this
lors de l'exécution decallback
.
Description
La méthode forEach
exécute la fonction callback
fournie pour chaque valeur contenue au sein de l'objet Set
. Elle n'est pas appelée pour les valeurs qui ont été supprimées. Cependant, elle est exécutée si jamais la valeur vaut undefined
.
callback
est appelé avec trois arguments :
- la valeur de l'élément
- la valeur de l'élément
- l'objet
Set
qui est parcouru
Les objets Set
n'ont pas de clé (key). Cependant les deux premiers arguments correspondent à la valeur contenue dans l'objet Set
. Cela permet d'utiliser les fonctions callback de façon cohérente avec les méthodes forEach
de Map
et Array
.
Si un paramètre thisArg
est fourni, il sera passé à la fonction callback
lors de l'appel comme valeur this
. Par défaut, la valeur undefined
sera passée comme argument this
. La valeur this
effectivement reçue par la fonction callback
est déterminée selon les règles usuelles de détermination de this
par une fonction.
Chacune des valeurs sera traitée une fois sauf si celle-ci a été supprimée puis réajoutée avant la fin de forEach
. callback
n'est pas appelé pour les valeurs qui sont supprimés avant le passage de la fonction. Les valeurs qui sont ajoutées avant que forEach
ait parcouru l'ensemble seront traitées
forEach
exécute la fonction callback
une fois pour chaque élément de l'objet Set
. Cette méthode ne renvoie pas de valeur.
Exemple
Afficher le contenu d'un objet Set
Le code qui suit permet d'enregistrer une ligne pour chaque élément contenu dans l'objet Set
:
function logSetElements(valeur1, valeur2, set) { console.log("s[" + valeur1 + "] = " + valeur2); } new Set(["toto", "truc", undefined]).forEach(logSetElements); // affichera : // "s[toto] = toto" // "s[truc] = truc" // "s[undefined] = undefined"
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Set.prototype.forEach' dans cette spécification. |
Standard | Définition initiale. |
ECMAScript 2017 Draft (ECMA-262) La définition de 'Set.prototype.forEach' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | 38 | 25.0 (25.0) | 11 | 25 | 7.1 |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | Pas de support | 38 | 25.0 (25.0) | Pas de support | Pas de support | 8 |