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
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.