Dans ce didacticiel, vous en apprendrez davantage sur les ensembles JavaScript et les ensembles WeakSets à l'aide d'exemples.
Le JavaScript ES6 a introduit deux nouvelles structures de données, à savoir Set
et WeakSet
.
L'ensemble est similaire à un tableau qui nous permet de stocker plusieurs éléments tels que des nombres, des chaînes, des objets, etc. Cependant, contrairement à un tableau, un ensemble ne peut pas contenir de valeurs en double.
Créer un ensemble JavaScript
Pour créer un Set
, vous devez utiliser le new Set()
constructeur. Par exemple,
// create Set const set1 = new Set(); // an empty set console.log(set1); // Set () // Set with multiple types of value const set2 = new Set((1, 'hello', (count : true))); console.log(set2); // Set (1, "hello", (count: true))
Lorsque des valeurs dupliquées sont transmises à un Set
objet, les valeurs dupliquées sont exclues.
// Set with duplicate values const set3 = new Set((1, 1, 2, 2)); console.log(set3); // Set (1, 2)
Éléments de l'ensemble d'accès
Vous pouvez accéder aux Set
éléments en utilisant la values()
méthode et vérifier s'il y a un élément à l'intérieur en Set
utilisant has()
method. Par exemple,
const set1 = new Set((1, 2, 3)); // access the elements of a Set console.log(set1.values()); // Set Iterator (1, 2, 3)
Vous pouvez utiliser la has()
méthode pour vérifier si l'élément est dans un ensemble. Par exemple,
const set1 = new Set((1, 2, 3)); // check if an element is in Set console.log(set1.has(1));
Ajout de nouveaux éléments
Vous pouvez ajouter des éléments à un ensemble à l'aide de la add()
méthode. Par exemple,
const set = new Set((1, 2)); console.log(set.values()); // adding new elements set.add(3); console.log(set.values()); // adding duplicate elements // does not add to Set set.add(1); console.log(set.values());
Production
Définir l'itérateur (1, 2) Définir l'itérateur (1, 2, 3) Définir l'itérateur (1, 2, 3)
Suppression d'éléments
Vous pouvez utiliser le clear()
et la delete()
méthode pour supprimer des éléments d'un ensemble.
La delete()
méthode supprime un élément spécifique d'un fichier Set
. Par exemple,
const set = new Set((1, 2, 3)); console.log(set.values()); // Set Iterator (1, 2, 3) // removing a particular element set.delete(2); console.log(set.values()); // Set Iterator (1, 3)
La clear()
méthode supprime tous les éléments d'un fichier Set
. Par exemple,
const set = new Set((1, 2, 3)); console.log(set.values()); // Set Iterator (1, 2, 3) // remove all elements of Set set.clear(); console.log(set.values()); // Set Iterator ()
Itérer les ensembles
Vous pouvez parcourir les éléments Set en utilisant la boucle for… of ou la méthode forEach (). Les éléments sont accessibles dans l'ordre d'insertion. Par exemple,
const set = new Set((1, 2, 3)); // looping through Set for (let i of set) ( console.log(i); )
Production
1 2 3
JavaScript WeakSet
Le WeakSet est similaire à un Set. Cependant, WeakSet ne peut contenir que des objets alors qu'un Set peut contenir n'importe quel type de données tels que des chaînes, des nombres, des objets, etc. Par exemple,
const weakSet = new WeakSet(); console.log(weakSet); // WeakSet () let obj = ( message: 'Hi', sendMessage: true ) // adding object (element) to WeakSet weakSet.add(obj); console.log(weakSet); // WeakSet ((message: "Hi", sendMessage: true))
Lorsque vous essayez d'ajouter d'autres types de données en plus des objets, WeakSet génère une erreur. Par exemple,
// trying to add string to WeakSet weakSet.add('hello'); // throws error // TypeError: Attempted to add a non-object key to a WeakSet console.log(weakSet);
Méthodes WeakSet
WeakSets ont des méthodes add()
, delete()
et has()
. Par exemple,
const weakSet = new WeakSet(); console.log(weakSet); // WeakSet () const obj = (a:1); // add to a weakSet weakSet.add(obj); console.log(weakSet); // WeakSet ((a: 1)) // check if an element is in Set console.log(weakSet.has(obj)); // true // delete elements weakSet.delete(obj); console.log(weakSet); // WeakSet ()
Les WeakSets ne sont pas itérables
Contrairement aux ensembles, les WeakSets ne sont pas itérables. Par exemple,
const weakSet = new WeakSet((a:1)); // looping through WeakSet for (let i of weakSet) ( // TypeError console.log(i); )
Opérations d'ensemble mathématiques
En JavaScript, Set ne fournit pas de méthodes intégrées pour effectuer des opérations mathématiques telles que l'union, l'intersection, la différence, etc. Cependant, nous pouvons créer des programmes pour effectuer ces opérations.
Exemple: définir l'opération d'union
// perform union operation // contain elements of both sets function union(a, b) ( let unionSet = new Set(a); for (let i of b) ( unionSet.add(i); ) return unionSet ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = union(setA, setB); console.log(result);
Production
Set ("pomme", "mangue", "orange", "raisin", "banane")
Exemple: définir l'opération d'intersection
// perform intersection operation // elements of set a that are also in set b function intersection(setA, setB) ( let intersectionSet = new Set(); for (let i of setB) ( if (setA.has(i)) ( intersectionSet.add(i); ) ) return intersectionSet; ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = intersection(setA, setB); console.log(result);
Production
Set ("pomme")
Exemple: opération de réglage de la différence
// perform difference operation // elements of set a that are not in set b function difference(setA, setB) ( let differenceSet = new Set(setA) for (let i of setB) ( differenceSet.delete(i) ) return differenceSet ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = difference(setA, setB); console.log(result);
Production
Set ("mangue", "orange")
Exemple: définir le fonctionnement du sous-ensemble
// perform subset operation // true if all elements of set b is in set a function subset(setA, setB) ( for (let i of setB) ( if (!setA.has(i)) ( return false ) ) return true ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('apple', 'orange')); let result = subset(setA, setB); console.log(result);
Production
vrai
JavaScript Sets
et WeakSets
ont été introduits dans ES6 . Certains navigateurs peuvent ne pas prendre en charge leur utilisation. Pour en savoir plus, consultez la section Prise en charge des ensembles JavaScript et Prise en charge des WeakSets JavaScript.