Werte generieren, solange eine 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 untersuchen, wie man in JavaScript eine Generatorfunktion erstellt, die neue Werte produziert, solange eine gegebene Bedingung erfüllt ist. Wir werden die generateWhile-Funktion verwenden, die einen Startwert, eine Bedingungsfunktion und eine next-Funktion erhält, um den nächsten Wert aus dem aktuellen Wert und dem nächsten Startwert zu berechnen. Am Ende dieses Labs werden Sie in der Lage sein, benutzerdefinierte Generatoren zu erstellen, die verwendet werden können, um Werte basierend auf bestimmten Bedingungen und Regeln zu erzeugen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") subgraph Lab Skills javascript/variables -.-> lab-28347{{"Werte generieren, solange eine Bedingung erfüllt ist"}} javascript/data_types -.-> lab-28347{{"Werte generieren, solange eine Bedingung erfüllt ist"}} javascript/arith_ops -.-> lab-28347{{"Werte generieren, solange eine Bedingung erfüllt ist"}} javascript/loops -.-> lab-28347{{"Werte generieren, solange eine Bedingung erfüllt ist"}} end

Generator, der Werte produziert, solange eine Bedingung wahr ist

Um zu beginnen, öffnen Sie das Terminal/SSH und geben Sie node ein. Dies erstellt einen Generator, der solange neue Werte produziert, wie die gegebene Bedingung erfüllt ist.

Der Generator wird mit einem Startwert initialisiert, der verwendet wird, um den aktuellen Wert zu initialisieren. Eine while-Schleife wird dann verwendet, um zu iterieren, solange die Bedingungsfunktion, die mit dem aktuellen Wert aufgerufen wird, true zurückgibt.

Das yield-Schlüsselwort wird verwendet, um den aktuellen Wert zurückzugeben und optional einen neuen Startwert, nextSeed, zu empfangen. Die next-Funktion wird verwendet, um den nächsten Wert aus dem aktuellen Wert und dem nextSeed zu berechnen.

const generateWhile = function* (seed, condition, next) {
  let val = seed;
  let nextSeed = null;
  while (condition(val)) {
    nextSeed = yield val;
    val = next(val, nextSeed);
  }
  return val;
};

Um den Generator zu verwenden, rufen Sie ihn mit den Startwert, Bedingungsfunktion und next-Funktionen auf. Beispielsweise wird [...generateWhile(1, v => v <= 5, v => ++v)] [1, 2, 3, 4, 5] zurückgeben.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab „Generate While Condition Is Met“ abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.