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?