Q34 [Coding]: Implement a generic memoize() utility function.
function memoize(fn) {
const cache = new Map();
return function(...args) {
const key = JSON.stringify(args);
if (cache.has(key)) {
return cache.get(key);
}
const result = fn.apply(this, args);
cache.set(key, result);
return result;
};
}
Key Takeaways
- Caches calculation results using serialized stringified arguments as keys.
- Avoids duplicate costly computations on identical input arguments.
Knowledge Check
What trade-off does memoization introduce into applications?