Gráffica Academy
Creado para la ComunidadAprende a programar
Escribir al equipo

Contacta con el equipo de Gráffica Estudio Academy.

IG @ X in
Estructuras de datos

Sets y Maps

Los arrays no son la única forma de agrupar datos. Cuando lo que importa es que cada valor sea único, o que cada dato tenga una clave asociada de cualquier tipo (no solo texto, como en un objeto), JavaScript te da dos estructuras más especializadas: Set y Map.

Set: una colección de valores únicos

Un Set es como un array que nunca permite duplicados — si intentas añadir un valor que ya existe, simplemente no pasa nada. Es la forma más directa de eliminar duplicados de una lista:

sets.js
1
Pulsa "Ejecutar" para ver el resultado.
.add(x)

Añade x al Set. Si ya existe, no hace nada.

.has(x)

true o false según si x está en el Set.

.delete(x)

Elimina x del Set.

.size

El número de elementos — no .length, esa es la trampa habitual al venir de arrays.

💡 El truco [...new Set(array)]

Los tres puntos (..., el operador spread) sacan todos los valores del Set y los meten en un array nuevo. Es el patrón más habitual en JavaScript para eliminar duplicados de una lista en una sola línea.


Map: pares clave-valor, sin las limitaciones de un objeto

Un objeto normal solo admite strings (o Symbols) como clave. Un Map admite cualquier valor como clave — un número, un objeto, incluso una función — y mantiene el orden en que se insertaron las claves, algo que un objeto tampoco garantiza.

maps.js
1
Pulsa "Ejecutar" para ver el resultado.
.set(clave, valor)

Añade o actualiza un par clave-valor.

.get(clave)

Devuelve el valor asociado, o undefined si no existe.

.has(clave) / .delete(clave)

Comprueba si existe, o la elimina.


¿Cuándo usar cada uno?

Array

Lista ordenada de valores, con repetidos permitidos. El caso general.

Set

Cuando necesitas que cada valor aparezca una sola vez.

Objeto

Datos con nombre fijo y conocido de antemano (nombre, precio, ciudad...).

Map

Pares clave-valor donde las claves no son texto fijo, o cuando el orden de inserción importa.

Comprueba lo que has aprendido

3 preguntas · sin nota, solo para afianzar lo de hoy

1. ¿Qué pasa si intentas añadir un valor que ya existe a un Set?

2. ¿Qué propiedad usas para saber cuántos elementos tiene un Set?

3. ¿Qué ventaja principal tiene un Map sobre un objeto normal como estructura clave-valor?

Síguenos IG @ X in