From 39f2114f9797eb51994966c6bb8ff1814c9a4da8 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:36:08 +0100 Subject: unslug fr: move --- .../global_objects/set/@@iterator/index.html | 92 ++++++++ .../global_objects/set/@@species/index.html | 72 ++++++ .../reference/global_objects/set/add/index.html | 81 +++++++ .../reference/global_objects/set/clear/index.html | 77 +++++++ .../reference/global_objects/set/delete/index.html | 96 ++++++++ .../global_objects/set/entries/index.html | 77 +++++++ .../global_objects/set/foreach/index.html | 115 ++++++++++ .../reference/global_objects/set/has/index.html | 91 ++++++++ .../reference/global_objects/set/index.html | 249 +++++++++++++++++++++ .../reference/global_objects/set/size/index.html | 67 ++++++ .../reference/global_objects/set/values/index.html | 78 +++++++ 11 files changed, 1095 insertions(+) create mode 100644 files/fr/web/javascript/reference/global_objects/set/@@iterator/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/set/@@species/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/set/add/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/set/clear/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/set/delete/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/set/entries/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/set/foreach/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/set/has/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/set/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/set/size/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/set/values/index.html (limited to 'files/fr/web/javascript/reference/global_objects/set') diff --git a/files/fr/web/javascript/reference/global_objects/set/@@iterator/index.html b/files/fr/web/javascript/reference/global_objects/set/@@iterator/index.html new file mode 100644 index 0000000000..de86a491fa --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/set/@@iterator/index.html @@ -0,0 +1,92 @@ +--- +title: 'Set.prototype[@@iterator]()' +slug: Web/JavaScript/Reference/Objets_globaux/Set/@@iterator +tags: + - ECMAScript 2015 + - Iterator + - JavaScript + - Méthode + - Prototype + - Reference + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/@@iterator +--- +
{{JSRef}}
+ +

La valeur initiale de la propriété @@iterator est le même objet fonction que la valeur initiale de la propriété {{jsxref("Set.prototype.values()", "Set.prototype.values")}}.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-@@iterator.html")}}
+ + + +

Syntaxe

+ +
monSet[Symbol.iterator]
+ +

Valeur de retour

+ +

La fonction associée au symbole @@iterator de l'objet. Par défaut, c'est la fonction {{jsxref("Set.prototype.values()","values()")}}.

+ +

Exemples

+ +

Utiliser [@@iterator]()

+ +
const monSet = new Set();
+monSet.add("0");
+monSet.add(1);
+monSet.add({});
+
+const setIter = monSet[Symbol.iterator]();
+
+console.log(setIter.next().value); // "0"
+console.log(setIter.next().value); // 1
+console.log(setIter.next().value); // {}
+
+ +

Utiliser [@@iterator]() avec une boucle for..of

+ +
const monSet= new Set();
+monSet.add("0");
+monSet.add(1);
+monSet.add({});
+
+for (const v of monSet) {
+  console.log(v);
+}
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-set.prototype-@@iterator', 'Set.prototype[@@iterator]')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-set.prototype-@@iterator', 'Set.prototype[@@iterator]')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Set.@@iterator")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/set/@@species/index.html b/files/fr/web/javascript/reference/global_objects/set/@@species/index.html new file mode 100644 index 0000000000..dbf3152c4d --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/set/@@species/index.html @@ -0,0 +1,72 @@ +--- +title: 'get Set[@@species]' +slug: Web/JavaScript/Reference/Objets_globaux/Set/@@species +tags: + - ECMAScript 2015 + - JavaScript + - Propriété + - Reference + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/@@species +--- +
{{JSRef}}
+ +

Set[@@species] renvoie le constructeur Set.

+ +

Syntaxe

+ +
Set[Symbol.species]
+
+ +

Description

+ +

L'accesseur species renvoie le constructeur par défaut pour les objets Set. Les constructeurs pour les classes filles peuvent surcharger cette propriété afin de modifier le constructeur utilisé lors de l'affectation.

+ +

Exemples

+ +

La propriété species renvoie la fonction utilisée comme constructeur par défaut, dans le cas des objets Set, c'est le constructeur Set :

+ +
Set[Symbol.species]; // function Set()
+ +

Pour les objets dérivés (par exemple une classe MonSet que vous auriez construite), la propriété species pour MonSet sera le constructeur MonSet. Cependant, si vous souhaitez surcharger ce comportement afin de renvoyer le constructeur Set dans les méthodes des classes dérivées, vous pourrez utiliser :

+ +
class MonSet extends Set
+  // On surcharge la propriété species de MonSet
+  // avec le constructeur Set de la classe parente
+  static get [Symbol.species()]() { return Set;}
+}
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-get-set-@@species', 'get Set [ @@species ]')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-get-set-@@species', 'get Set [ @@species ]')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Set.@@species")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/set/add/index.html b/files/fr/web/javascript/reference/global_objects/set/add/index.html new file mode 100644 index 0000000000..2ccda95513 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/set/add/index.html @@ -0,0 +1,81 @@ +--- +title: Set.prototype.add() +slug: Web/JavaScript/Reference/Objets_globaux/Set/add +tags: + - ECMAScript 2015 + - JavaScript + - Méthode + - Prototype + - Reference + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/add +--- +
{{JSRef}}
+ +

La méthode add() permet d'ajouter un nouvel élément ayant une valeur donnée à un ensemble Set. Cette valeur sera ajoutée à la fin de l'objet Set.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-add.html")}}
+ + + +

Syntaxe

+ +
monSet.add(valeur);
+ +

Paramètres

+ +
+
valeur
+
Ce paramètre est obligatoire. La valeur de l'élément qu'on souhaite ajouter à l'objet Set.
+
+ +

Valeur de retour

+ +

L'objet Set (ce qui permet de chaîner une suite d'instructions utilisant cette méthode).

+ +

Exemples

+ +
var monSet = new Set();
+
+monSet.add(1);
+monSet.add(5).add("du texte"); // ajouts en chaîne
+
+console.log(monSet);
+// Set [1, 5, "du texte"]
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-set.prototype.add', 'Set.prototype.add')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-set.prototype.add', 'Set.prototype.add')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Set.add")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/set/clear/index.html b/files/fr/web/javascript/reference/global_objects/set/clear/index.html new file mode 100644 index 0000000000..1c6beb30c4 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/set/clear/index.html @@ -0,0 +1,77 @@ +--- +title: Set.prototype.clear() +slug: Web/JavaScript/Reference/Objets_globaux/Set/clear +tags: + - ECMAScript 2015 + - JavaScript + - Méthode + - Prototype + - Reference + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/clear +--- +
{{JSRef}}
+ +

La méthode clear() permet de retirer tous les éléments d'un ensemble Set.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-clear.html")}}
+ + + +

Syntaxe

+ +
monSet.clear();
+ +

Valeur de retour

+ +

{{jsxref("undefined")}}.

+ +

Exemples

+ +
var monSet = new Set();
+monSet.add(1);
+monSet.add("toto");
+
+monSet.size;        // 2
+monSet.has("toto"); // true
+
+monSet.clear();
+
+monSet.size;       // 0
+monSet.has("truc")  // false
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-set.prototype.clear', 'Set.prototype.clear')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-set.prototype.clear', 'Set.prototype.clear')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Set.clear")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/set/delete/index.html b/files/fr/web/javascript/reference/global_objects/set/delete/index.html new file mode 100644 index 0000000000..eff24aa6d9 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/set/delete/index.html @@ -0,0 +1,96 @@ +--- +title: Set.prototype.delete() +slug: Web/JavaScript/Reference/Objets_globaux/Set/delete +tags: + - ECMAScript 2015 + - JavaScript + - Méthode + - Prototype + - Reference + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/delete +--- +
{{JSRef}}
+ +

La méthode delete() permet de retirer un élément donné d'un objet Set.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-delete.html")}}
+ + + +

Syntaxe

+ +
monSet.delete(valeur);
+ +

Paramètres

+ +
+
valeur
+
Ce paramètre est obligatoire. Il représente la valeur de l'élément qu'on souhaite retirer de l'objet Set.
+
+ +

Valeur de retour

+ +

true si un élément de l'objet Set a été retiré lors de l'opération, false sinon.

+ +

Exemples

+ +

Utiliser la méthode delete()

+ +
var monSet = new Set();
+monSet.add("toto");
+
+monSet.delete("truc"); // Renvoie false. Aucun élément "truc" n'a pu être supprimé.
+monSet.delete("toto"); // Renvoie true.  L'élément a pu être supprimé.
+
+monSet.has("toto");    // Renvoie false. L'élément "toto" ne fait plus partie de l'ensemble.
+
+ +

Utiliser delete() avec forEach()

+ +
var objetSet = new Set();
+objetSet.add({x: 10, y: 20}); // On ajoute un nouvel objet dans l'ensemble
+objetSet.add({x: 20, y: 30}); // On ajoute un nouvel objet dans l'ensemble
+
+// On supprime les points de l'ensemble pour lesquels
+// x est supérieur à 10
+objetSet.forEach(function(point){
+  if(point.x > 10){
+    objetSet.delete(point);
+  }
+});
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-set.prototype.delete', 'Set.prototype.delete')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-set.prototype.delete', 'Set.prototype.delete')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Set.delete")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/set/entries/index.html b/files/fr/web/javascript/reference/global_objects/set/entries/index.html new file mode 100644 index 0000000000..0e791e4c8d --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/set/entries/index.html @@ -0,0 +1,77 @@ +--- +title: Set.prototype.entries() +slug: Web/JavaScript/Reference/Objets_globaux/Set/entries +tags: + - ECMAScript 2015 + - Iterator + - JavaScript + - Méthode + - Prototype + - Reference + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/entries +--- +
{{JSRef}}
+ +

La méthode entries() renvoie un nouvel objet Iterator qui contient un tableau composé de [valeur, valeur] pour chaque élément de l'objet Set, dans leur ordre d'insertion. En raison de leur structure, les objets Set n'ont pas de clé (key), à la différence des objets Map. Pour garder une structure et une API sembables à celle d'un objet Map, chaque entrée (entry) aura la même valeur pour la clé (key) et pour la valeur (value), c'est pourquoi un tableau de [valeur, valeur] est renvoyé.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-entries.html")}}
+ + + +

Syntaxe

+ +
monSet.entries()
+ +

Valeur de retour

+ +

Un nouvel objet Iterator qui contient un tableau de tuples [valeur, valeur] pour chaque élément de l'ensemble, dans leur ordre d'insertion.

+ +

Exemples

+ +
var monSet = new Set();
+monSet.add("totobidule");
+monSet.add(1);
+monSet.add("machin");
+
+var setIter = monSet.entries();
+
+console.log(setIter.next().value); // ["totobidule", "totobidule"]
+console.log(setIter.next().value); // [1, 1]
+console.log(setIter.next().value); // ["machin", "machin"]
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-set.prototype.entries', 'Set.prototype.entries')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-set.prototype.entries', 'Set.prototype.entries')}}{{Spec2('ESDraft')}}
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Set.entries")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/set/foreach/index.html b/files/fr/web/javascript/reference/global_objects/set/foreach/index.html new file mode 100644 index 0000000000..e3b14c4eb8 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/set/foreach/index.html @@ -0,0 +1,115 @@ +--- +title: Set.prototype.forEach() +slug: Web/JavaScript/Reference/Objets_globaux/Set/forEach +tags: + - ECMAScript 2015 + - JavaScript + - Méthode + - Prototype + - Reference + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/forEach +--- +
{{JSRef}}
+ +

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.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-foreach.html")}}
+ + + +

Syntaxe

+ +
monSet.forEach(callback[, thisArg])
+ +

Valeur de retour

+ +

{{jsxref("undefined")}}.

+ +

Paramètres

+ +
+
callback
+
La fonction qu'on souhaite exécuter pour chaque élément et qui sera appelée avec trois arguments :
+
+
+
valeurCourante, cléCourante
+
L'élément courant appartenant à l'ensemble Set. Un ensemble n'ayant pas de clé, c'est la même valeur qui est passée pour deux arguments de la fonction de rappel.
+
set
+
L'objet Set courant (celui sur lequel forEach() a été appelé).
+
+
+
thisArg
+
Paramètre optionnel. La valeur à utiliser comme this lors de l'exécution de callback.
+
+ +

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 :

+ + + +

Les objets Set n'ont pas de clé (key). Cependant les deux premiers arguments correspondent à la valeur contenue dans l'objet {{jsxref("Set")}}. Cela permet d'utiliser les fonctions callback de façon cohérente avec les méthodes forEach() de {{jsxref("Map.foreach", "Map")}} et {{jsxref("Array.forEach","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 {{jsxref("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.

+ +

Exemples

+ +

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ÉtatCommentaires
{{SpecName('ES2015', '#sec-set.prototype.foreach', 'Set.prototype.forEach')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-set.prototype.foreach', 'Set.prototype.forEach')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Set.forEach")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/set/has/index.html b/files/fr/web/javascript/reference/global_objects/set/has/index.html new file mode 100644 index 0000000000..08f9fcb55f --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/set/has/index.html @@ -0,0 +1,91 @@ +--- +title: Set.prototype.has() +slug: Web/JavaScript/Reference/Objets_globaux/Set/has +tags: + - ECMAScript 2015 + - JavaScript + - Méthode + - Prototype + - Reference + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/has +--- +
{{JSRef}}
+ +

La méthode has() renvoie un booléen qui indique s'il existe un élément de l'ensemble Set avec une certaine valeur.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-has.html")}}
+ + + +

Syntaxe

+ +
monSet.has(valeur);
+ +

Paramètres

+ +
+
valeur
+
Ce paramètre est obligatoire. C'est la valeur dont on souhaite savoir si elle est présente ou non dans l'objet Set.
+
+ +

Valeur de retour

+ +

Un booléen : true s'il existe un élément avec la valeur donnée au sein du Set, false sinon.

+ +
+

Note : L'existence d'un élément avec la valeur testée est vérifiée avec l'algorithme d'égalité des valeurs nulles (sameValueZero).

+
+ +

Exemples

+ +
var monSet = new Set();
+monSet.add("toto");
+
+monSet.has("toto");  // renvoie true
+monSet.has("truc");  // renvoie false
+
+var set1 = new Set();
+var obj1 = {'cle1': 1};
+set1.add(obj1);
+
+set1.has(obj1);        // renvoie true
+set1.has({'cle1': 1}); // renvoie false car ce sont deux objets distincts
+set1.add({'cle1': 1}); // set1 contient désormais 2 éléments
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-set.prototype.has', 'Set.prototype.has')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-set.prototype.has', 'Set.prototype.has')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Set.has")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/set/index.html b/files/fr/web/javascript/reference/global_objects/set/index.html new file mode 100644 index 0000000000..9b44936cbc --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/set/index.html @@ -0,0 +1,249 @@ +--- +title: Set +slug: Web/JavaScript/Reference/Objets_globaux/Set +tags: + - ECMAScript 2015 + - JavaScript + - Reference + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set +--- +
{{JSRef}}
+ +

L'objet Set (Ensemble en français) permet de stocker des valeurs uniques, de n'importe quel type, que ce soit des valeurs d'un {{Glossary("Primitive", "type primitif")}} ou des objets.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-constructor.html")}}
+ + + +

Syntaxe

+ +
 new Set([itérable]);
+ +

Paramètres

+ +
+
itérable
+
Paramètre optionnel. Si un objet itérable est donné comme argument, l'ensemble de ses éléments sera ajouté au nouvel objet Set. Si {{jsxref("null")}} est fourni comme argument ou qu'aucun argument n'est fourni, il sera traité comme {{jsxref("undefined")}}.
+
+ +

Valeur de retour

+ +

Un nouvel objet Set.

+ +

Description

+ +

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.

+ +

Égalité des valeurs

+ +

Chaque valeur d'un Set doit être unique, il faut donc tester l'égalité des valeurs contenues. Cette égalité n'est 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 sont 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.

+ +

{{jsxref("NaN")}} and {{jsxref("undefined")}} peuvent être enregistrés dans un objet Set. NaN est considéré comme NaN (bien que NaN !== NaN).

+ +

Propriétés

+ +
+
Set.length
+
La valeur de la propriété length est 0. +
Note : Pour compter le nombre d'éléments d'un objet Set, on utilisera {{jsxref("Set.prototype.size")}}.
+
+
{{jsxref("Set.@@species", "get Set[@@species]")}}
+
Le constructeur utilisé pour créer des objets dérivés.
+
{{jsxref("Set.prototype")}}
+
Représente le prototype du constructeur Set. Cela permet d'ajouter des propriétés à tous les objets Set.
+
+ +

Instances de Set

+ +

Toutes les instances de Set héritent de {{jsxref("Set.prototype")}}.

+ +

Propriétés

+ +

{{page('fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/prototype','Propriétés')}}

+ +

Méthodes

+ +

{{page('fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/prototype','Méthodes')}}

+ +

Exemples

+ +

Utiliser l'objet Set

+ +
var monSet = new Set();
+
+monSet.add(1);         // { 1 }
+monSet.add(5);         // { 1, 5 }
+monSet.add("du texte");// { 1, 5, "du texte" }
+
+monSet.has(1); // true
+monSet.has(3); // false, 3 n'a pas été ajouté à l'ensemble
+monSet.has(5);              // true
+monSet.has(Math.sqrt(25));  // true
+monSet.has("Du Texte".toLowerCase()); // true
+
+monSet.size; // 3
+
+monSet.delete(5); // retire 5 du set
+monSet.has(5);    // false, 5 a été retiré de l'ensemble
+
+monSet.size; // 2, on a retiré une valeur de l'ensemble
+console.log(monSet); // Set [ 1, "du texte" ]
+
+ +

Itérer sur des ensembles (Set)

+ +
// On itère sur les différents éléments de l'ensemble
+// ici on affiche : 1, "du texte"
+for (let item of monSet) console.log(item);
+
+// ici on affiche les clés de l'ensemble : 1, "du texte"
+for (let item of monSet.keys()) console.log(item);
+
+// ici on affiche les valeurs de l'ensemble : 1, "du texte"
+for (let item of monSet.values()) console.log(item);
+
+// ici on affiche les clés de l'ensemble : 1, "du texte"
+//(ici, les clés et les valeurs sont les mêmes)
+for (let [clé, valeur] of monSet.entries()) console.log(clé);
+
+// Une méthode de conversion avec Array.from
+var monTableau = Array.from(monSet);    // [1, "du texte"]
+
+// Cela fonctionnera également dans un document HTML
+monSet.add(document.body);
+monSet.has(document.querySelector("body")); // true
+
+// convertir un tableau (Array) en ensemble (Set) et vice versa
+monSet2 = new Set([1,2,3,4]);
+monSet2.size; // 4
+[...monSet2]; // [1,2,3,4]
+
+// L'intersection peut être calculée avec
+var intersection = new Set([...set1].filter(x => set2.has(x)));
+
+// La différence pourra être simulée avec
+var différence = new Set([...set1].filter(x => !set2.has(x)));
+
+// On peut itérer sur les entrées d'un ensemble avec forEach
+mySet.forEach(function(value) {
+  console.log(value);
+});
+
+// 1
+// 2
+// 3
+// 4
+ +

Implémenter des opérations ensemblistes

+ +
function isSuperset(set, subset) {
+  for (var elem of subset) {
+    if (!set.has(elem)) {
+      return false;
+    }
+  }
+  return true;
+}
+
+function union(setA, setB) {
+  var union = new Set(setA);
+  for (var elem of setB) {
+    union.add(elem);
+  }
+  return union;
+}
+
+function intersection(setA, setB) {
+  var intersection = new Set();
+  for (var elem of setB) {
+    if (setA.has(elem)) {
+      intersection.add(elem);
+    }
+  }
+  return intersection;
+}
+
+function difference (setA, setB) {
+  var difference = new Set(setA);
+  for (var elem of setB) {
+    difference.delete(elem);
+  }
+  return difference;
+}
+
+// Exemples
+var setA = new Set([1,2,3,4]),
+    setB = new Set([2,3]),
+    setC = new Set([3,4,5,6]);
+
+isSuperset(setA, setB);   // => true
+union(setA, setC);        // => Set [1, 2, 3, 4, 5, 6]
+intersection(setA, setC); // => Set [3, 4]
+difference(setA, setC);   // => Set [1, 2]
+
+ +

Les relations avec les objets Array

+ +
var monTableau = ["valeur1", "valeur2", "valeur3"];
+
+// On peut utiliser le constructeur Set pour transformer un Array en Set
+var monSet = new Set(monTableau);
+
+monSet.has("valeur1"); // renvoie true
+
+// Et utiliser l'opérateur de décomposition pour transformer un Set en Array.
+console.log([...monSet]); // affichera la même chose que monTableau
+ +

Les relations avec les objets String

+ +
var maChaine = "CouCou";
+
+var monEnsemble = new Set(maChaine);
+// Set {"C","o","u" }
+monEnsemble.size; // 3
+
+ +

Dédoublonner un tableau

+ +
const nombres = [2,3,4,4,2,2,2,4,4,5,5,6,6,7,5,32,3,4,5];
+console.log([...new Set(nombres)]);
+// affichera [2, 3, 4, 5, 6, 7, 32]
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-set-objects', 'Set')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-set-objects', 'Set')}}{{Spec2('ESDraft')}}
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Set")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/set/size/index.html b/files/fr/web/javascript/reference/global_objects/set/size/index.html new file mode 100644 index 0000000000..83a5b8c9b7 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/set/size/index.html @@ -0,0 +1,67 @@ +--- +title: Set.prototype.size +slug: Web/JavaScript/Reference/Objets_globaux/Set/size +tags: + - ECMAScript 2015 + - JavaScript + - Propriété + - Prototype + - Reference + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/size +--- +
{{JSRef}}
+ +

L'accesseur size est une propriété qui renvoie le nombre d'éléments contenus dans un objet {{jsxref("Set")}}. Un objet Set correspondant à un ensemble, chaque élément qu'il contient y est unique.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-size.html")}}
+ + + +

Description

+ +

La valeur de size est un entier représentant le nombre d'éléments contenus dans l'ensemble. Le mutateur associée pour size vaut {{jsxref("undefined")}}. Cette propriété ne peut pas être changée directement.

+ +

Exemples

+ +
var monSet = new Set();
+monSet.add(1);
+monSet.add(5);
+monSet.add("du texte")
+
+monSet.size; // 3
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-get-set.prototype.size', 'Set.prototype.size')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ESDraft', '#sec-get-set.prototype.size', 'Set.prototype.size')}}{{Spec2('ESDraft')}}
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Set.size")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/set/values/index.html b/files/fr/web/javascript/reference/global_objects/set/values/index.html new file mode 100644 index 0000000000..2e1ab4b178 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/set/values/index.html @@ -0,0 +1,78 @@ +--- +title: Set.prototype.values() +slug: Web/JavaScript/Reference/Objets_globaux/Set/values +tags: + - ECMAScript 2015 + - Iterator + - JavaScript + - Méthode + - Prototype + - Reference + - set +translation_of: Web/JavaScript/Reference/Global_Objects/Set/values +--- +
{{JSRef}}
+ +

La méthode values() renvoie un nouvel objet {{jsxref("Iterator")}} qui contient les valeurs de chaque élément de l'objet Set, dans leur ordre d'insertion.

+ +

La méthode keys() est un alias pour cette méthode (afin de conserver une certaine similarité avec les objets {{jsxref("Map")}}) et se comportera exactement de la même façon en renvoyant les valeurs des éléments du Set.

+ +
{{EmbedInteractiveExample("pages/js/set-prototype-values.html")}}
+ + + +

Syntaxe

+ +
monSet.values();
+
+ +

Valeur de retour

+ +

Un nouvel objet Iterator qui contient les valeurs de chaque élément de l'ensemble Set, dans leur ordre d'insertion.

+ +

Exemples

+ +
var monSet = new Set();
+monSet.add("toto");
+monSet.add("truc");
+monSet.add("machin");
+
+var setIter = monSet.values();
+
+console.log(setIter.next().value); // "toto"
+console.log(setIter.next().value); // "truc"
+console.log(setIter.next().value); // "machin"
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-set.prototype.values', 'Set.prototype.values')}}{{Spec2('ES2015')}}Définition initiale
{{SpecName('ESDraft', '#sec-set.prototype.values', 'Set.prototype.values')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Set.values")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf