La structure de données JavaScript définie

Une structure de données Set permet d'ajouter des données à un conteneur, une collection d'objets ou de types primitifs (chaînes, nombres ou booléens), et vous pouvez la considérer comme une carte où les valeurs sont utilisées comme clés de carte, la valeur de la carte étant toujours un booléen vrai.

Qu'est-ce qu'un ensemble

Une structure de données Set permet d'ajouter des données à un conteneur.

ECMAScript6 (également appelé ES2015) a introduit la structure de données Set dans leJavaScriptmonde, avecCarte

Un ensemble est une collection d'objets ou de types primitifs (chaînes, nombres ou booléens), et vous pouvez le considérer comme une carte où les valeurs sont utilisées comme clés de carte, la valeur de la carte étant toujours un booléen vrai.

Initialiser un ensemble

Un Set est initialisé en appelant:

const s = new Set()

Ajouter des éléments à un ensemble

Vous pouvez ajouter des éléments à l'ensemble en utilisant leaddméthode:

s.add('one')
s.add('two')

Un ensemble ne stocke que des éléments uniques, donc appelants.add('one')plusieurs fois n'ajoutera pas de nouveaux éléments.

Vous ne pouvez pas ajouter plusieurs éléments à un ensemble en même temps. Vous devez appeleradd()plusieurs fois.

Vérifier si un élément est dans l'ensemble

Une fois qu'un élément est dans l'ensemble, nous pouvons vérifier si l'ensemble le contient:

s.has('one') //true
s.has('three') //false

Supprimer un élément d'un ensemble par clé

Utilisez ledelete()méthode:

s.delete('one')

Déterminer le nombre d'articles dans un ensemble

Utilisez lesizebiens:

s.size

Supprimer tous les éléments d'un ensemble

Utilisez leclear()méthode:

s.clear()

Itérer les éléments d'un ensemble

Utilisez lekeys()ouvalues()méthodes - elles sont équivalentes:

for (const k of s.keys()) {
  console.log(k)
}

for (const k of s.values()) { console.log(k) }

Leentries()La méthode retourne un itérateur, que vous pouvez utiliser comme ceci:

const i = s.entries()
console.log(i.next())

appeli.next()renverra chaque élément comme un{ value, done = false }objet jusqu'à la fin de l'itérateur, moment auqueldoneesttrue.

Vous pouvez également utiliser la méthode forEach () sur l'ensemble:

s.forEach(v => console.log(v))

ou vous pouvez simplement utiliser l'ensemble dans une boucle for..of:

for (const k of s) {
  console.log(k)
}

Initialiser un ensemble avec des valeurs

Vous pouvez initialiser un ensemble avec un ensemble de valeurs:

const s = new Set([1, 2, 3, 4])

Convertir en tableau

Convertir les clés Set en un tableau

const a = [...s.keys()]

// or const a = […s.values()]

Un WeakSet

Un WeakSet est un type spécial de Set.

Dans un ensemble, les éléments ne sont jamais récupérés. Un WeakSet permet à la place à tous ses éléments d'être collectés librement. Chaque clé d'un WeakSet est un objet. Lorsque la référence à cet objet est perdue, la valeur peut être récupérée.

Voici les principales différences:

  1. vous ne pouvez pas parcourir le WeakSet
  2. vous ne pouvez pas effacer tous les éléments d'un WeakSet
  3. vous ne pouvez pas vérifier sa taille

Un WeakSet est généralement utilisé par le code au niveau du framework et expose uniquement ces méthodes:

  • ajouter()
  • a()
  • effacer()

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: