| # | title | topic | type | difficulty |
|---|---|---|---|---|
| 31 | Reimplement == from the spec (without using ==) | Type Coercion | Coding | Hard |
| 32 | Rebuild Object.groupBy — null prototype included | Objects | Coding | Hard |
| 33 | deepEqual that survives circular references | Objects | Coding | Hard |
| 34 | memoize(fn) — cache by identity, even undefined | YDKJS Book | Coding | Hard |
| 35 | [] == ![] |
| WTF Quirks |
| Multiple choice |
| Hard |
| 36 | Generators talk back | Quiz: JS Questions | Multiple choice | Hard |
| 37 | Quicksort from scratch | Sorting Algorithms | Coding | Hard |
| 38 | Merge sort — prove it's stable | Sorting Algorithms | Coding | Hard |
| 39 | Multi-key sort with a composed comparator | Sorting Algorithms | Coding | Hard |
| 40 | LRU cache with O(1) operations | Interview Classics | Coding | Hard |
| 41 | Build an EventEmitter | Interview Classics | Coding | Hard |
| 42 | Longest substring without repeats (sliding window) | Interview Classics | Coding | Hard |
| 43 | Flatten an object to dot-paths (and holes beware) | Interview Classics | Coding | Hard |
| 44 | Trapping rain water (two pointers) | Interview Classics | Coding | Hard |
| 45 | Edit distance (Levenshtein, full DP) | Interview Classics | Coding | Hard |
| 46 | deepClone that preserves cycles | Interview Classics | Coding | Hard |
| 47 | Add numbers too big for Number | Floating Point | Coding | Hard |
| 48 | All permutations, in order | Interview Classics | Coding | Hard |
| 49 | Group transactions — approach 2: reduce(), no Object.groupBy | Objects | Coding | Hard |
| 50 | null >= 0 but null != 0 | Type Coercion | Multiple choice | Hard |
| 51 | The army of things equal to nothing | Type Coercion | Multiple choice | Hard |
| 52 | '10' < '9' — string comparison traps | Type Coercion | Multiple choice | Hard |
| 53 | {} + [] — position is everything | Type Coercion | Multiple choice | Hard |
| 54 | Symbols: explicit yes, implicit never | Type Coercion | Multiple choice | Hard |
| 55 | Loose equality is not transitive | Type Coercion | Multiple choice | Hard |
| 56 | Make c == 1 && c == 2 && c == 3 true | Type Coercion | Coding | Hard |
| 57 | The closure-in-a-loop bug, as code | YDKJS Book | Coding | Hard |
| 58 | createSpy — the test-double HOF | YDKJS Book | Coding | Hard |
| 59 | Multi-argument memoize (a Map trie) | YDKJS Book | Coding | Hard |
| 60 | Breadth-first search: shortest path | Algorithms & Recursion | Coding | Hard |