Establecer la estructura de datos de JavaScript

Una estructura de datos de conjunto permite agregar datos a un contenedor, una colección de objetos o tipos primitivos (cadenas, números o booleanos), y puede pensar en él como un mapa donde los valores se utilizan como claves de mapa, con el valor del mapa siempre siendo un booleano verdadero.

Que es un set

Una estructura de datos Set permite agregar datos a un contenedor.

ECMAScript6 (también llamado ES2015) introdujo la estructura de datos Set en elJavaScriptmundo, junto conMapa

Un conjunto es una colección de objetos o tipos primitivos (cadenas, números o valores booleanos), y puede pensar en él como un mapa en el que los valores se utilizan como claves de mapa, siendo el valor del mapa siempre un booleano verdadero.

Inicializar un conjunto

Un conjunto se inicializa llamando a:

const s = new Set()

Agregar elementos a un conjunto

Puede agregar elementos al conjunto mediante eladdmétodo:

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

Un conjunto solo almacena elementos únicos, por lo que llamars.add('one')varias veces no agregará nuevos elementos.

No puede agregar varios elementos a un conjunto al mismo tiempo. Necesitas llamaradd()varias veces.

Verifique si un artículo está en el conjunto

Una vez que un elemento está en el conjunto, podemos comprobar si el conjunto lo contiene:

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

Eliminar un elemento de un conjunto por clave

Utilizar eldelete()método:

s.delete('one')

Determinar la cantidad de elementos en un conjunto

Utilizar elsizepropiedad:

s.size

Eliminar todos los elementos de un conjunto

Utilizar elclear()método:

s.clear()

Iterar los elementos de un conjunto

Utilizar elkeys()ovalues()métodos - son equivalentes:

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

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

losentries()El método devuelve un iterador, que puede usar así:

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

vocacióni.next()devolverá cada elemento como un{ value, done = false }objeto hasta que finalice el iterador, momento en el quedoneestrue.

También puede usar el método forEach () en el conjunto:

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

o simplemente puede usar el conjunto en un bucle for..of:

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

Inicializar un conjunto con valores

Puede inicializar un conjunto con un conjunto de valores:

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

Convertir a matriz

Convierta las claves de conjunto en una matriz

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

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

Un conjunto débil

Un WeakSet es un tipo especial de Set.

En un conjunto, los elementos nunca se recolectan como basura. En cambio, un WeakSet permite que todos sus elementos se recolecten libremente. Cada clave de un WeakSet es un objeto. Cuando se pierde la referencia a este objeto, el valor se puede recolectar como basura.

Estas son las principales diferencias:

  1. no puede iterar sobre WeakSet
  2. no puede borrar todos los elementos de un conjunto débil
  3. no puedes comprobar su tamaño

Un WeakSet se usa generalmente por código de nivel de marco y solo expone estos métodos:

  • agregar()
  • posee()
  • Eliminar()

Más tutoriales de js: