Ensembles JavaScript
Un ensemble JavaScript est une collection de valeurs uniques.
Chaque valeur ne peut apparaître qu'une seule fois dans un ensemble.
Les valeurs peuvent être de n'importe quel type, qu'il s'agisse de valeurs primitives ou d'objets.
Comment créer un ensemble
Vous pouvez créer un ensemble JavaScript de deux manières :
- En passant un tableau à
new Set() - En créant un ensemble vide et en utilisant
add()pour ajouter des valeurs
La méthode new Set()
Passez un tableau au constructeur new Set() :
Exemple
// Créer un ensemble
const letters = new Set(["a","b","c"]); Créez un ensemble et ajoutez des valeurs :
Exemple
// Créer un ensemble
const letters = new Set();
// Ajouter des valeurs à l'ensemble
letters.add("a");
letters.add("b");
letters.add("c");
Créez un ensemble et ajoutez des variables :
Exemple
// Créer un ensemble
const letters = new Set();
// Créer des variables
const a = "a";
const b = "b";
const c = "c";
// Ajouter des variables à l'ensemble
letters.add(a);
letters.add(b);
letters.add(c);
La méthode add()
Exemple
letters.add("d");
letters.add("e"); Si vous ajoutez des éléments identiques, seul le premier sera enregistré :
Exemple
letters.add("a");
letters.add("b");
letters.add("c");
letters.add("c");
letters.add("c");
letters.add("c");
letters.add("c");
letters.add("c");
Lister les éléments
Vous pouvez lister tous les éléments de l'ensemble (valeurs) avec une boucle for..of :
Exemple
// Créer un ensemble
const letters = new Set(["a","b","c"]);
// Lister tous les éléments
let text = "";
for (const x of letters) {
text += x;
}
Les ensembles sont des objets
typeof retourne "objet" :
typeof letters; // Retourne "objet"
instanceof Set retourne vrai :
letters instanceof Set; // Retourne vrai
En savoir plus :
Méthodes des ensembles JavaScript
Logique des ensembles JavaScript
Support des navigateurs
Set est une fonctionnalité ES6 .
ES6 est entièrement pris en charge dans tous les navigateurs modernes depuis juin 2017 :
| Chrome 51 | Edge 15 | Firefox 54 | Safari 10 | Opera 38 |
| Mai 2016 | Avr 2017 | Juin 2017 | Sep 2016 | Juin 2016 |