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.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
Un objet Set permet de stocker un ensemble de valeurs uniques de n'importe quel type, qu'il s'agisse de valeurs primitives ou d'objets.
Les objets Set sont des ensembles de valeurs. Il est possible d'itérer sur les éléments contenus dans l'objet Set dans leur ordre d'insertion. Une valeur donnée ne peut apparaître qu'une seule fois par Set, elle y est unique.
Chaque valeur d'un Set doit être unique, il faut donc tester l'égalité des valeurs contenues. Dans une version antérieure de la spécification ECMAScript, cette égalité n'était pas la même que celle de l'opérateur ===. Notamment, pour les objets Set, +0 (qui, selon l'égalité stricte, est égal à -0) et -0 étaient des valeurs différentes. Cela a toutefois été changé avec la dernière version d'ECMAScript 2015 (ES6). Voir le tableau de compatibilité ci-après quant à la prise en charge de l'égalité des clés pour 0 et -0.
NaN et undefined peuvent être enregistrés dans un objet Set. NaN est considéré comme NaN (bien que NaN !== NaN).
Set dispose d'une méthode has() qui permet de vérifier si une valeur est contenue dans l'objet Set et qui utilise une approche qui est, en moyenne, plus rapide que de tester les éléments qui ont été précédemment ajoutés à Set. Cette méthode est, en moyenne, plus rapide que la méthode Array.prototype.includes() qui s'applique aux objets Array lorsque la longueur (length) du tableau est égale à celle de l'objet Set (size).
Crée un nouvel objet Set.
La fonction de construction utilisée pour créer des objets dérivés.
Renvoie le nombre de valeurs contenues dans l'objet Set.
Ajoute une valeur à l'objet Set et renvoie l'objet Set avec la valeur ajoutée.
Set.prototype.clear()Supprime tous les éléments de l'objet Set.
Set.prototype.delete(valeur)Supprime l'élément associé à la valeur en argument et renvoie un booléen indiquant si l'élément a été retiré avec succès. Par la suite, Set.prototype.has(valeur) renverra false.
Set.prototype.has(valeur)Renvoie un booléen indiquant si la valeur fournie en argument est présente dans l'ensemble représenté par l'objet Set.
Renvoie un nouvel itérateur fournissant les valeurs de chaque élément de l'objet Set, selon leur ordre d'insertion.
Set.prototype.values()Renvoie un nouvel itérateur fournissant les valeurs de chaque élément de l'objet Set, selon leur ordre d'insertion.
Set.prototype.keys()Un alias pour Set.prototype.values().
Set.prototype.entries()Renvoie un nouvel objet itérateur qui contient un tableau [valeur, valeur] pour chaque élément de l'objet Set, selon leur ordre d'insertion.
Il s'agit d'une méthode analogue à celle disponible pour Map, c'est pour ça qu'on a le doublonnement de la valeur à la place de la clé.
Set.prototype.forEach(fnRappel[, thisArg])Appelle la fonction fnRappel une fois pour chaque valeur présente dans l'objet Set, selon leur ordre d'insertion. Si le paramètre thisArg est fourni, sa valeur sera utilisée comme valeur pour this pour chaque appel de fnRappel.
| ECMAScript® 2027 Language Specification # sec-set-objects |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 24 juin 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.