The coding round III: data structures and patterns
Implement the classic utility and pattern questions (with JS.14 and JS.15, at least 35 implementations).
- JS.16.01deepClone (with cycles, Map, Set, Date, RegExp)CoreMid-levelBeing written
- JS.16.02EventEmitter / pub-subCoreMid-levelBeing written
- JS.16.03LRU cacheCoreMid-levelBeing written
- JS.16.04get, set and flatten/unflatten object pathsCoreMid-levelBeing written
- JS.16.05Promise pool, async queue and task schedulerCoreSeniorBeing written
- JS.16.06retryWithBackoff and cancellable fetch wrapperCoreMid-levelBeing written
- JS.16.07Array/collection utilitiesCoreJuniorBeing written
- JS.16.08String utilities: template engine, classnames, query stringsMid-levelBeing written
- JS.16.09DOM utilitiesCoreMid-levelBeing written
- JS.16.10Observable, signals and storeSeniorBeing written
- JS.16.11Rate limiter and request batcherSeniorBeing written
- JS.16.13More commonly asked utilitiesMid-levelBeing written
Practice rooms
- Mixed timed setsrung 4 timed sets · spaced re-solve deck of all implementations
Interview questions in this module
- Implement
deepClonethat handles circular references. - Implement an
EventEmitterwithon,off,onceandemit. - Implement an LRU cache with O(1) operations.
- Implement
get(obj, "a.b[0].c", defaultValue). - Implement a promise pool with a concurrency limit.
- Implement
groupByandchunk. - Implement a simple template engine.
- Implement
getElementsByClassNamewithout using built-in selectors. - Implement a Redux-style store with
subscribe. - Implement a token-bucket rate limiter.
- Implement a function that batches calls made in the same tick into one network request.
- Flatten a nested object into dot-notation keys and back.