TGViewer
JavaScript JavaScript @javascript · 31.1K subscribers
Post #3129 2.79K
CHALLENGE


const memoize = (fn) => {
const cache = new Map();
return (...args) => {
const key = JSON.stringify(args);
if (cache.has(key)) {
return cache.get(key);
}
const result = fn(...args);
cache.set(key, result);
return result;
};
};

let callCount = 0;

const expensiveMultiply = memoize((a, b) => {
callCount++;
return a * b;
});

console.log(expensiveMultiply(3, 4));
console.log(expensiveMultiply(3, 4));
console.log(expensiveMultiply(2, 5));
console.log(expensiveMultiply(3, 4));
console.log(`calls: ${callCount}`);
  • ❤ 6
  • 🔥 4
  • 👍 2
More from @javascript
  1. Sep 25, 2026Post #3518
  2. Sep 25, 2026CHALLENGE let counter = 0; const mod = { get counter() { return counter; }, increment() {…
  3. Sep 24, 2026Post #3516
  4. Sep 24, 2026CHALLENGE class Base { static count = 0; static increment() { this.count++; return this.co…
  5. Sep 23, 2026🤩 tinyjs: Build JavaScript Desktop Apps in <10MB I built an app with this and was impress…
  6. Sep 23, 2026Post #3513
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →