Skip to main content
← ⚑ JavaScript & the browserΒ·Module C6 Β· Lesson 2
TaskBuild counts as a Map from name to int starting at {anna:3, bob:5}. Increment anna by 2. Log size, then log each "<name>: <count>" line. Then make tags = Set(['js','ts','js','go']) and log its size.

Iterating Maps and Sets

100 XP8 min
Theory

Map vs Object

A Map lets keys be any value (not just strings). Maps preserve insertion order, iterate cleanly, and have a true .size.

const counts = new Map();
counts.set("anna", 3);
counts.set("bob",  5);

for (const [key, value] of counts) {
  console.log(key + ": " + value);
}
// anna: 3
// bob: 5

Default iteration on a Map yields [key, value] pairs. You can also call .keys(), .values(), or .entries() explicitly.

Set β€” unique values

A Set is a unique collection. Iterates in insertion order.

const tags = new Set(["js", "ts", "js"]);
console.log(tags.size); // 2
for (const tag of tags) console.log(tag); // "js", "ts"

When to reach for Map / Set

  • Counting unique items β†’ Set.
  • Tracking last-seen timestamp per user β†’ Map with user id as key.
  • Order matters and you need O(1) lookup β†’ Map beats searching arrays.
πŸ”’

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β€” card required, cancel anytime.

Sign up β€” free trial β†’

First 10 lessons in each track are free. No card needed for those.

← PreviousNext lesson β†’

Get one Python or web tip a day β€” by email

Short, hand-written, no spam. Unsubscribe in one click.