Generieren bis die Bedingung erfüllt ist

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28346{{"Generieren bis die Bedingung erfüllt ist"}} javascript/data_types -.-> lab-28346{{"Generieren bis die Bedingung erfüllt ist"}} javascript/arith_ops -.-> lab-28346{{"Generieren bis die Bedingung erfüllt ist"}} javascript/comp_ops -.-> lab-28346{{"Generieren bis die Bedingung erfüllt ist"}} javascript/loops -.-> lab-28346{{"Generieren bis die Bedingung erfüllt ist"}} javascript/spread_rest -.-> lab-28346{{"Generieren bis die Bedingung erfüllt ist"}} end

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 val mit dem seed-Wert.
  • Verwenden Sie eine while-Schleife, um fortlaufend zu iterieren, solange die condition-Funktion, die mit dem aktuellen val aufgerufen wird, false zurückgibt.
  • Verwenden Sie das yield-Schlüsselwort, um den aktuellen val zurückzugeben und optional einen neuen Seed-Wert, nextSeed, zu empfangen.
  • Verwenden Sie die next-Funktion, um den nächsten Wert aus dem aktuellen val und dem nextSeed zu 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.