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: 5Default 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.