| # | title | topic | type | difficulty |
|---|---|---|---|---|
| 1 | Array.of vs the Array constructor | Arrays | Multiple choice | Medium |
| 2 | Array.prototype.at is generic | Arrays | Multiple choice | Hard |
| 3 | Flatten to any depth — no recursion allowed | Arrays | Coding | Medium |
| 4 | Pair sum detection with .some() only | Arrays | Coding | Hard |
| 5 | Matrix validation with .every() |
| Arrays |
| Coding |
| Hard |
| 6 | Function composition with reduceRight | Arrays | Coding | Hard |
| 7 | The default sort trap | Arrays | Multiple choice | Medium |
| 8 | Sparse arrays and holes | Arrays | Multiple choice | Hard |
| 9 | Build a matrix with Array.from | Arrays | Coding | Medium |
| 10 | One-pass tokenizer with flatMap | Arrays | Coding | Medium |
| 11 | Rebuild Array.prototype.reduce — holes and all | Arrays | Coding | Hard |
| 12 | Rebuild Array.prototype.with (ES2023) | Arrays | Coding | Hard |
| 13 | Pair sum — approach 2: classic loops only | Arrays | Coding | Medium |
| 14 | Deep flatten — approach 2: recursion, no .flat() | Arrays | Coding | Medium |
| 15 | Multiplication table — approach 2: nested for loops | Arrays | Coding | Medium |
| 16 | Tokenizer — approach 2: classic loops, no array methods | Arrays | Coding | Medium |
| 17 | Grid validation — approach 2: nested for loops | Arrays | Coding | Medium |
| 18 | Function composition — approach 2: a plain loop | Arrays | Coding | Medium |
| 19 | Double every number | Arrays | Coding | Easy |
| 20 | Keep only the evens | Arrays | Coding | Easy |
| 21 | First negative number | Arrays | Coding | Easy |
| 22 | Make a CSV line | Arrays | Coding | Easy |