Set de Javascript, una estructura de datos

La estructura de datos Set de Javascript, nos permite agregar datos a un contenedor, una colección de objetos o primitivos (strings, números o booleanos). Y puede llegar a ser muy útil al desarrollar en js.
La forma más fácil de entender un set, es considerarlo como un mapa donde los valores se usan como keys del mismo, con su valor siendo siempre true. O sea, que los ítems de un set serán siempre únicos.
Inicializar un Set
El Set lo puedes inicializar vacío o con elementos.
1 2 3 4 5 | // iniciar un set vacío const meses = new Set(); // o lo puedes iniciar con valores const meses = new Set(['enero', 'febrero']) |
Agregar items
Para agregar un item al set, simplemente usa el método add.
1 2 | meses.add('enero'); meses.add('febrero'); |
Verificar que un item esté en el Set
El método has del Set nos retornara un Booleano
1 2 | meses.has('junio'); // false meses.has('enero'); // true |
Tamaño del Set
La propiedad size del set contiene la cantidad de items del mismo.
1 | meses.size; // 2 |
Borrar un ítem
Simplemente utilizamos el método delete como en el siguiente código.
1 2 3 4 5 | // para borrar un item meses.delete('enero'); // para borrar todos los items meses.clear(); |
Iterar sobre un Set
Para iterar sobre un set podemos usar el método forEach al igual que en un array. Sino utilizar for..of sobre sus keys, values o sobre el mismo set, como muestra el siguiente ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // con forEach meses.forEach(m => console.log(m)) // con for..of en keys o values for (const m of meses.keys()) { console.log(m); } for (const m of meses.values()) { console.log(m); } // con for..of en el set mismo for (const m of meses) { console.log(m); } |
Convertir un Set en un array
Algo que se utiliza frecuentemente es convertir un Set a un array. Esto lo podemos hacer muy fácil al des-estructurar (con el operador ...
) el SetIterator que nos devuelve los métodos keys() o values(), como lo haríamos con un simple arreglo, ve el siguiente código:
1 2 3 | const a = [...meses.keys()] const b = [...meses.values()] |
Conclusión
Esta estructura de datos fue introducida a Javascript en ECMAScript 6 (o ES2015). Y la buena noticia es que está soportado en todos los navegadores modernos.
Muy claro este set de Javascript
[…] sabemos, la estructura Set de Javascript tiene todos sus elementos únicos, por lo tanto podríamos crear un nuevo set a partir de nuestro […]