La classe Set
permet de créer un objet itérable, un peu sur le même principe que les tableaux, à la différence près que les valeurs d’un set sont uniques [ES6].
var set = new Set([
"str",
42,
"str",
1,
"1",
42]);
console.log(set); // [ "str", 42, 1, "1" ]
Permet d’ajouter une valeur à la liste.
Retourne l’objet, on peut donc chaîner plusieurs set
à la suite.
set.add(2);
Permet de vérifier si une valeur donnée existe.
console.log(set.has("str")); // true
Permet de supprimer une valeur de la liste:
console.log(set.delete(2)); // true
Permet de récupérer le nombre d’éléments de l’objet
console.log(set.size); // 4
On peut boucler sur les valeurs du set avec la méthode values
for(var value of set.values()) {
console.log(value);
}
C’est le comportement par défaut, obtenu si on essaie de boucler sur l’objet directement:
for(var value of set) {
console.log(value);
}
set.forEach((value) => {
console.log(value);
});
Permet de supprimer toutes les entrées de l’objet
set.clear();
Un objet WeakSet
fonctionne à peu près de la même manière qu’un objet Set
.
Weakmap ne supporte pas les itérations, clear()
et size
.
Si on supprime une variable contenue dans un objet Map, la variable existera toujours dans cet objet.
Avec un WeakSet, la variable ne serait plus accessible et les données seraient libérées par le garbage collector.