๐Ÿ—ƒ๏ธ JavaScript

Map and Set โ€” When Objects and Arrays Aren't Enough

๐Ÿ“… Jul 4, 2026 โฑ 3 min read

Objects and arrays cover most needs โ€” Map and Set cover the cases where they get awkward.

Set โ€” uniqueness for free

const unique = [...new Set([1, 1, 2, 3, 3])];   // [1,2,3] โ€” THE dedupe idiom

const seen = new Set();
seen.add(id);
seen.has(id);      // O(1) โ€” vs arr.includes() which is O(n)
seen.size;

Any "have I seen this before?" logic wants a Set โ€” visited nodes in graphs, selected IDs, permission flags.

Map โ€” a better dictionary

const m = new Map();
m.set("a", 1);
m.set(someObject, "metadata");   // ANY key type โ€” objects, functions...
m.get(someObject);
m.size;                           // objects need Object.keys(o).length
for (const [k, v] of m) { ... }   // iterates in INSERTION order, guaranteed

Decision rules

โ† All Articles