capypad
0 Tage Serie
javascript / intermediate
Snippet

Eigene Iterationslogik mit Generatoren

Generatoren sind Funktionen, die verlassen und später wieder betreten werden können. Ihr Kontext (Variablenbindungen) bleibt über die Wiedereintritte hinweg erhalten. Mit der '*'-Syntax und dem Schlüsselwort 'yield' können Sie eine Sequenz von Werten nach Bedarf erzeugen, was für große Datensätze oder eigene Sequenzen speichereffizient ist.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
function* rangeGenerator(start, end, step = 1) {
let current = start;
while (current <= end) {
yield current;
current += step;
}
}
 
for (const num of rangeGenerator(0, 10, 2)) {
console.log(num); // 0, 2, 4, 6, 8, 10
}
Erklärung
1
function* rangeGenerator(...)
Das Sternchen kennzeichnet eine Generator-Funktion, die ein Iterator-Objekt zurückgibt.
2
yield current;
Pausiert die Ausführung des Generators und gibt den aktuellen Wert an den Aufrufer zurück.
3
for (const num of rangeGenerator(...))
Verwendet das integrierte Iterator-Protokoll, um die vom Generator erzeugten Werte zu konsumieren.