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 15 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.