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 pasándole 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 vacío.
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.