typestar

Map, Set y sus primos débiles en JavaScript

Map acepta cualquier clave y recuerda el orden de inserción; WeakMap no retiene referencias.

const byObject = new Map();
const key = { id: 1 };
byObject.set(key, "object key").set("id", "string key");
console.log(byObject.get(key), byObject.size, [...byObject.keys()].length);

const seen = new Set([1, 2, 2, 3]);
console.log(seen.size, seen.has(2), [...seen]);

const a = new Set([1, 2, 3]);
const b = new Set([2, 3, 4]);
console.log([...a].filter((x) => b.has(x)));

const cache = new WeakMap();
cache.set(key, { computed: true });
console.log(cache.has(key), cache.get(key).computed);

Cómo funciona

  1. Una clave objeto en un objeto plano se vuelve cadena; en un Map, no.
  2. Set deduplica con SameValueZero.
  3. Una entrada de WeakMap desaparece cuando su clave es recolectada.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
494
Tokens
194
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 123 segundos.

Escribe este fragmento

Paso 4 de 8 en Objetos y colecciones; paso 30 de 43 en Fundamentos del lenguaje.

← Anterior Siguiente →