Для функции одного аргумента Map позволяет хранить результат по самому аргументу; clearCache вызывает cache.clear(). Проверяйте наличие через has.
Реализуйте мемоизацию функции с кэшем на `Map` и методом `clearCache`, который полностью очищает кэш.
Для функции одного аргумента Map позволяет хранить результат по самому аргументу; clearCache вызывает cache.clear(). Проверяйте наличие через has.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для функции одного аргумента Map позволяет хранить результат по самому аргументу; clearCache вызывает cache.clear(). Проверяйте наличие через has.
Контракт примера: чистая функция одного аргумента, не зависящая от this.
function memoize(fn) {
const cache = new Map();
function memoized(arg) {
if (cache.has(arg)) return cache.get(arg);
const result = fn(arg);
cache.set(arg, result);
return result;
}
memoized.clearCache = () => cache.clear();
return memoized;
}
undefined кешируется корректно. Объекты сравниваются по ссылке; разные аргументы остаются в памяти до очистки. Для нескольких аргументов нужен составной ключ либо дерево Map, а не массив-ключ, создаваемый при каждом вызове.