Javascript: Sets vs Arrays



El objeto Set fue introducido en la especificación de ECMAScript 2015, en el momento de escribir este post lo ejecuta tanto Node.js y la mayoría de los navegadores.

Set permite crear colecciones de valores únicos, es decir, cuando creamos una colección con set si metemos un valor duplicado este desaparece, si por ejemplo ponemos una lista de ciudades:

const ciudades = new Set(['Madrid', 'Barcelona', 'Sevilla', 'Madrid']);
console.log(ciudades);

Podréis ver que sólo muestra a Madrid, Barcelona y Sevilla de manera única.

Un array si que permite valores duplicados, así que si convertimos un array a un set los valores duplicados desaparecerán. Sets sólo elimina los valores duplicados, pero si creamos un conjunto de datos con Set y esos datos son arrays en este caso no detectará los datos duplicados ya que los arrays en Javascript son referencias de memoria y siempre son por lo tanto diferentes porque apuntan a diferentes celdas.

Set tiene muchos menos métodos que los arrays, así que si quieres hacer operaciones más complejas con ellos lo suyo es convertirlos a arrays, hacer lo que tengas que hacer con los datos y luego volverlos a convertir en un set.

Espero que os sea de utilidad ^_^.


Comentarios