Skip to content

Instantly share code, notes, and snippets.

@leonidkuznetsov18
Created April 29, 2020 12:26
Show Gist options
  • Select an option

  • Save leonidkuznetsov18/e4b28907362fce5e4eaa65b26ade1832 to your computer and use it in GitHub Desktop.

Select an option

Save leonidkuznetsov18/e4b28907362fce5e4eaa65b26ade1832 to your computer and use it in GitHub Desktop.
simple memoization js
const memoize = (fn) => {
let cache = {};
const cacheFn = (...args) => {
let key = JSON.stringify(args);
if (key in cache) {
return cache[key]
}
return (cache[key] = fn.call(null, ...args));
}
return cacheFn;
};
function double(number) {
console.log('[double]', number);
return number * 2;
}
const memoizedDouble = memoize(double);
console.log(memoizedDouble(5));
console.log(memoizedDouble(5));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment