Files
JavaScript/Cache/Memoize.js
2021-10-05 08:50:12 +02:00

24 lines
387 B
JavaScript

/**
* Memoize
* @param {Function} fn
* @returns
*/
export const memoize = (func) => {
// Initializing new cache
const cache = {}
return (...args) => {
const [arg] = args
if (arg in cache) {
// Reading cache by argument
return cache[arg]
}
// Updating cache by argument
const result = func(arg)
cache[arg] = result
return result
}
}