Einführung
In diesem Lab werden wir das Konzept von Generatoren in JavaScript erkunden. Genauer gesagt werden wir lernen, wie man eine Generatorfunktion erstellt, die neue Werte produziert, bis eine bestimmte Bedingung erfüllt ist. Durch praktische Codebeispiele werden wir ein besseres Verständnis dafür gewinnen, wie Generatoren funktionieren und wie sie verwendet werden können, um unseren Code zu vereinfachen und seine Leistung zu verbessern.
Generieren von Werten bis eine gegebene Bedingung erfüllt ist
Um mit der Code-Praxis zu beginnen, öffnen Sie das Terminal/SSH und geben Sie node ein. Nachdem Sie das getan haben, können Sie einen Generator erstellen, der neue Werte produziert, bis eine gegebene Bedingung erfüllt ist.
Um diesen Generator zu erstellen, folgen Sie diesen Schritten:
- Initialisieren Sie den aktuellen
valmit demseed-Wert. - Verwenden Sie eine
while-Schleife, um fortlaufend zu iterieren, solange diecondition-Funktion, die mit dem aktuellenvalaufgerufen wird,falsezurückgibt. - Verwenden Sie das
yield-Schlüsselwort, um den aktuellenvalzurückzugeben und optional einen neuen Seed-Wert,nextSeed, zu empfangen. - Verwenden Sie die
next-Funktion, um den nächsten Wert aus dem aktuellenvalund demnextSeedzu berechnen.
Hier ist ein Beispiel-Codeausschnitt:
const generateUntil = function* (seed, condition, next) {
let val = seed;
let nextSeed = null;
while (!condition(val)) {
nextSeed = yield val;
val = next(val, nextSeed);
}
return val;
};
Sie können den Generator aufrufen, indem Sie ihn mit den entsprechenden Argumenten aufrufen. Beispielsweise:
[
...generateUntil(
1,
(v) => v > 5,
(v) => ++v
)
]; // [1, 2, 3, 4, 5]
Dies wird ein Array von Werten von 1 bis 5 erzeugen, da die Bedingung v > 5 erfüllt ist, wenn val gleich 6 ist.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Generieren bis die Bedingung erfüllt ist" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.