Реализовать свою функцию мемоизации (кэширования), которая кэширует результат работы функции при повторных вызовах с теми же аргументами, включая обработку примитивов и undefined, а также возможность очистки кэша (clearCache).

const sum = createCachedSum();

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

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

javascript const createCachedSum = function() { const cache = new Map(); return function(a, b) { const key = ${a},${b}; if (cache.has(key)) { console.log('из кэша'); return cache.get(key); } const result = a + b; cache.set(key, result); return result; }; };

Подробный разбор

Ответ с пояснениями

javascript const createCachedSum = function() { const cache = new Map(); return function(a, b) { const key = ${a},${b}; if (cache.has(key)) { console.log('из кэша'); return cache.get(key); } const result = a + b; cache.set(key, result); return result; }; };

const sum = createCachedSum();

console.log(sum(2, 3)); // 5 console.log(sum(2, 3)); // 5 из кэша console.log(sum(4, 1)); // 5


Здесь создается функция `createCachedSum`, которая возвращает замыкание с внутренним кэшем. При вызове функции `sum` с аргументами проверяется, есть ли результат в кэше, если да — возвращается сохраненное значение, иначе вычисляется сумма и сохраняется.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку