I am trying to adapt the memoize function to the small utility method, however, I am doing something wrong and would appreciate if someone can suggest why :)
const config = {
14340: 1195,
15774: 1226,
17208: 1257,
18642: 1288,
20076: 1319
}
const memoize = (fn) => {
let cache = {}
return (...args) => {
let cacheKey = args.map(n => n.toString() + '+').join('')
if (cacheKey in cache) {
return cache[cacheKey]
} else {
let result = args.reduce((acc, curr) => fn(acc, curr), 0);
cache[cacheKey] = result;
return result;
}
}
}
function _getMaxValue(config) {
const keys = Object.keys(config)
.map((k) => parseInt(k, 10))
.sort();
return config[keys[keys.length - 1].toString()];
}
const getMaxValue = (config) => memoize(_getMaxValue)
const _add = (a, b) => {
return a + b
}
const add = memoize(_add)
console.log(getMaxValue(config)) // memoize return block
console.log(add(1, 2)) // 3