Das Erkunden von JavaScript-Generatoren: Zyklische Array-Iteration

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 und lernen, wie wir einen Zyklusgenerator erstellen, der unendlich über ein Array iteriert. Wir werden das yield-Schlüsselwort und eine while-Schleife verwenden, um den Generator zu erstellen, und dann mit verschiedenen Arrays testen, um zu sehen, wie er funktioniert. Am Ende dieses Labs werden Sie ein tieferes Verständnis von Generatoren und ihrer Verwendung in Ihren JavaScript-Projekten haben.


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/loops("Loops") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") subgraph Lab Skills javascript/variables -.-> lab-28234{{"Das Erkunden von JavaScript-Generatoren: Zyklische Array-Iteration"}} javascript/data_types -.-> lab-28234{{"Das Erkunden von JavaScript-Generatoren: Zyklische Array-Iteration"}} javascript/arith_ops -.-> lab-28234{{"Das Erkunden von JavaScript-Generatoren: Zyklische Array-Iteration"}} javascript/loops -.-> lab-28234{{"Das Erkunden von JavaScript-Generatoren: Zyklische Array-Iteration"}} javascript/destr_assign -.-> lab-28234{{"Das Erkunden von JavaScript-Generatoren: Zyklische Array-Iteration"}} end

Anweisungen für den Zyklusgenerator

Um mit der Programmierung zu beginnen, öffnen Sie das Terminal/SSH und geben Sie node ein. Anschließend erstellen Sie einen Generator, der unendlich über das gegebene Array iteriert. Hier sind die Schritte:

  1. Verwenden Sie eine nicht endende while-Schleife, die jedes Mal, wenn Generator.prototype.next() aufgerufen wird, einen Wert yield gibt.
  2. Verwenden Sie den Modulo-Operator (%) mit Array.prototype.length, um den Index des nächsten Werts zu erhalten und den Zähler nach jeder yield-Anweisung zu erhöhen.

Hier ist ein Beispiel für die cycleGenerator-Funktion:

const cycleGenerator = function* (arr) {
  let i = 0;
  while (true) {
    yield arr[i % arr.length];
    i++;
  }
};

Sie können die Funktion dann wie folgt verwenden:

const binaryCycle = cycleGenerator([0, 1]);
binaryCycle.next(); // { value: 0, done: false }
binaryCycle.next(); // { value: 1, done: false }
binaryCycle.next(); // { value: 0, done: false }
binaryCycle.next(); // { value: 1, done: false }

Mit diesen Anweisungen können Sie einen Zyklusgenerator erstellen, der unendlich über jedes Array iteriert.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "Zyklusgenerator" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.