javascript / intermediate
Snippet
Higher-Order Funktionen für Memoization
Memoization ist eine Optimierungstechnik, bei der die Ergebnisse teurer Funktionsaufrufe gespeichert werden, um das zwischengespeicherte Ergebnis zurückzugeben, wenn dieselben Eingaben erneut auftreten.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
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;};};
Erklärung
1
const cache = new Map();
Erstellt einen persistenten Speicher für Ergebnisse mittels einer Closure.
2
if (cache.has(key)) return cache.get(key);
Prüft, ob die Berechnung für diese spezifischen Argumente bereits durchgeführt wurde.