Introducción a los conjuntos (set) con javascript


Los conjuntos son un nuevo tipo de dato que se introdujo con ES6 (EcmaScript 6) y nos permite crear colecciones de datos (estos deben de ser únicos, es decir no se pueden repetir), entre los tipos de datos que pueden  almacenar en un conjunto se encuentran los tipos primitivos pero también los complejos como arrays, matrices entre otros.
"Un set es una colección de elementos únicos". Podemos visualizar un set como un array en el que de alguna forma garantizamos que nunca hay elementos repetidos y los elementos no se encuentran ordenados.

Métodos de un conjunto (set)

Antes de introducirnos a los métodos que podemos utilizar, necesitamos declarar nuestro conjunto de datos.-

let nombres = new Set()

El ejemplo anterior nos creará un conjunto vacío, pero podemos inicializarlo al momento de crearlo pasandole un array como parámetro.-

let nombres = new Set(['Paulo', 'Carlos', 'Hugo'])

Para seguir un ejemplo practico en el articulo nos quedaremos con el conjunto vacio.

Agregar datos al conjunto

El método add() nos va a permitir agregar datos a nuestro conjunto.-

nombres.add('Paulo')
nombres.add('carlos')
nombres.add('Hugo')

Si intentamos agregar un valor que ya se encuentra en el conjunto, solo se ignorará.

Validar si existe un elemento en un conjunto

Con el método has() podremos validar si existe o no un elemento dentro de un conjunto.-

if(nombres.has('paulo')){
  console.log('Existe!')
} else {
  console.log('No existe!')
}

Eliminar un elemento de un conjunto

El método delete() nos permite eliminar un elemento de un conjunto.-

nombres.delete('paulo')

El método delete() nos devuelve un valor boolenao, si se elimina el elemento devuelve true, en caso contrario false.

Recorrer un conjunto

Existen distintas formas de recorrer un conjunto, la mas usual es con el método forEach.-

nombres.forEach(nombre => {
  console.log(nombre)
})
// Carlos
// Hugo

También podemos utilizar el ciclo for of.-

for(let nombre of nombres) {
  console.log(nombre)
})
// Carlos
// Hugo

Utilizando los métodos values() y keys(), ambos son iguales, nos devuelve un objeto iterador con el orden de inserción de los elementos de la siguiente forma.-

let getValues = nombres.values()

console.log(getValues.next())
/*
Object {
  done: false,
  value: 'Carlos'
}
*/

console.log(getValues.next())
/*
Object {
  done: true,
  value: 'Hugo'
}

*/

Propiedades

Tamaño de un conjunto

La propiedad size nos permite obtener el total de elementos de un conjunto.-

console.log(nombres.size)
// 3

Conclusiones

Prácticamente ES6 nos facilita el manejo de array con los conjuntos, es fácil de utilizar y mejorar en gran medida nuestro código a manera que los vallamos utilizando.

Que tengan feliz código.

Entradas más populares de este blog

Un vistazo a Angular