Standard Library Utilities
Map
Map stores key-value pairs and keeps lookup code explicit.
Map
A `Map<K, V>` stores values by keys and returns `undefined` when a key is missing.
Map
map.ts
Replay: real traced execution (multi-file project)
const lookupKey: string = "ts";
const lessons: Map<string, number> = new Map<string, number>();
lessons.set("ts", 12);
lessons.set("js", 9);
lessons.set("py", 7);
const count: number | undefined = lessons.get(lookupKey);
const label: string = count === undefined ? "missing" : `${count} lessons`;
console.log(`${lookupKey}=${label}`);
const lookupKey: string = "js";
const lessons: Map<string, number> = new Map<string, number>();
lessons.set("ts", 12);
lessons.set("js", 9);
lessons.set("py", 7);
const count: number | undefined = lessons.get(lookupKey);
const label: string = count === undefined ? "missing" : `${count} lessons`;
console.log(`${lookupKey}=${label}`);
const lookupKey: string = "py";
const lessons: Map<string, number> = new Map<string, number>();
lessons.set("ts", 12);
lessons.set("js", 9);
lessons.set("py", 7);
const count: number | undefined = lessons.get(lookupKey);
const label: string = count === undefined ? "missing" : `${count} lessons`;
console.log(`${lookupKey}=${label}`);
lookupKey ← ts, lessons ← [object Map], count ← 12, label ← 12 lessons
1const lookupKey→ ts: string = "ts"; //@lookupKey="js", "py"2const lessons→ [object Map]: Map<string, number> = new Map<string, number>();34lessons.set("ts", 12);5lessons.set("js", 9);6lessons.set("py", 7);78const count→ 12: number | undefined = lessons[object Map].get(lookupKeyts);9const label→ 12 lessons: string = count→ 12 === undefined ? "missing" : `${count12} lessons`;1011console.log(`${lookupKeyts}=${label12 lessons}`);outputts=12 lessons
lookupKey ← js, lessons ← [object Map], count ← 9, label ← 9 lessons
1const lookupKey→ js: string = "js";2const lessons→ [object Map]: Map<string, number> = new Map<string, number>();34lessons.set("ts", 12);5lessons.set("js", 9);6lessons.set("py", 7);78const count→ 9: number | undefined = lessons[object Map].get(lookupKeyjs);9const label→ 9 lessons: string = count→ 9 === undefined ? "missing" : `${count9} lessons`;1011console.log(`${lookupKeyjs}=${label9 lessons}`);outputjs=9 lessons
lookupKey ← py, lessons ← [object Map], count ← 7, label ← 7 lessons
1const lookupKey→ py: string = "py";2const lessons→ [object Map]: Map<string, number> = new Map<string, number>();34lessons.set("ts", 12);5lessons.set("js", 9);6lessons.set("py", 7);78const count→ 7: number | undefined = lessons[object Map].get(lookupKeypy);9const label→ 7 lessons: string = count→ 7 === undefined ? "missing" : `${count7} lessons`;1011console.log(`${lookupKeypy}=${label7 lessons}`);outputpy=7 lessons