面试题答案
一键面试function memoize(func) {
const cache = new Map();
return function(...args) {
// 处理复杂数据类型参数,使用JSON.stringify转为字符串作为缓存的键
const key = args.map(arg => JSON.stringify(arg)).join('-');
if (cache.has(key)) {
return cache.get(key);
}
const result = func.apply(this, args);
cache.set(key, result);
return result;
};
}
function expensiveCalculation(a, b) {
// 这里模拟复杂计算
return a + b;
}
const memoizedCalculation = memoize(expensiveCalculation);