javascript / expert
Snippet
Speichereffizientes Array-Chunk-Streaming mit Generatoren und Sliding-Window
Das Verarbeiten großer Arrays durch gleichzeitiges Erstellen mehrerer Teil-Arrays führt zu hohem Speicherverbrauch. Generatorbasierte Sliding Windows erzeugen Array-Slices schrittweise bei Bedarf und schonen so den Arbeitsspeicher.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
export function* createSlidingWindowIterable(items, size) {if (size <= 0 || !Array.isArray(items)) return;const window = [];for (const item of items) {window.push(item);if (window.length === size) {yield [...window];window.shift();}}}
nodejs
Erklärung
1
export function* createSlidingWindowIterable(items, size) {
Deklariert eine Generator-Funktion, die eine iterierbare Folge von Window-Slices liefert.
2
if (size <= 0 || !Array.isArray(items)) return;
Validiert Randbedingungen zur Vermeidung endloser Ausführungsschleifen.
3
if (window.length === size) {
Prüft, ob die angestrebte Fenstergröße erreicht ist.
4
yield [...window];
Gibt eine flache Kopie des aktuellen Fensterzustands zurück.
5
window.shift();
Entfernt das älteste Element, um das Sliding-Window weiterzubewegen.