DevPath · Aprende a programar ESPTEN

Estructuras de datos

Map y Set

Map y Set

Más allá de los objetos y arrays, JavaScript ofrece dos estructuras especializadas.

Map: pares clave-valor

Un Map asocia claves con valores. A diferencia de un objeto normal, sus claves pueden ser de cualquier tipo (incluso objetos o funciones) y recuerda el orden de inserción.

const stock = new Map();
stock.set("manzanas", 50);
stock.set("peras", 30);

console.log(stock.get("manzanas")); // 50
console.log(stock.has("peras"));    // true
console.log(stock.size);            // 2
stock.delete("peras");

Puedes recorrerlo fácilmente:

for (const [fruta, cantidad] of stock) {
  console.log(fruta, cantidad);
}

Set: valores únicos

Un Set es una colección de valores sin duplicados.

const etiquetas = new Set(["js", "web", "js"]);
console.log(etiquetas.size); // 2 (el duplicado se ignora)
etiquetas.add("css");
console.log(etiquetas.has("web")); // true

Un truco habitual: eliminar duplicados de un array.

const unicos = [...new Set([1, 1, 2, 3, 3])]; // [1, 2, 3]

¿Cuándo usar cada uno?

Ejemplos

Contar frecuencias con Map

const palabras = ["sol", "mar", "sol", "luz", "mar", "sol"];
const conteo = new Map();
for (const p of palabras) {
  conteo.set(p, (conteo.get(p) || 0) + 1);
}
console.log([...conteo.entries()]);

Unión de dos conjuntos con Set

const a = new Set([1, 2, 3]);
const b = new Set([3, 4, 5]);
const union = new Set([...a, ...b]);
console.log([...union]);
Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
Pilas y colas →