Реализуйте мемоизацию функции с кэшем на `Map` и методом `clearCache`, который полностью очищает кэш.

Для функции одного аргумента Map позволяет хранить результат по самому аргументу; clearCache вызывает cache.clear(). Проверяйте наличие через has.

Короткий ответ

Что ответить на собеседовании

Для функции одного аргумента 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, а не массив-ключ, создаваемый при каждом вызове.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее