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"]);
Essayez-le vous-même »

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");
Essayez-le vous-même »

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);
Essayez-le vous-même »

La méthode add()

Exemple

letters.add("d");
letters.add("e");
Essayez-le vous-même »

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");
Essayez-le vous-même »


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;
}
Essayez-le vous-même »

Les ensembles sont des objets

typeof retourne "objet" :

typeof letters; // Retourne "objet"
Essayez-le vous-même »

instanceof Set retourne vrai :

letters instanceof Set; // Retourne vrai
Essayez-le vous-même »


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