Schleifen in Generatoren in JavaScript

Innerhalb von Generatoren können Schleifen verwendet werden. Dabei können wir Schleifen mit yield pausieren. Lassen Sie uns ein Beispiel betrachten. Wir pausieren die Schleife bei jeder Iteration:

javascriptfunction *func() {
  for (let i = 1; i <= 3; i++) {
    yield i;
  }
}

Wir erhalten einen Iterator:

javascriptlet iter = func();

Lassen Sie uns die Funktion unseres Iterators überprüfen:

javascriptconsole.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: undefined, done: true}
Задание 1

Erstellen Sie einen Iterator, dessen jeder Aufruf Zahlen von 10 bis Null zurückgibt.

Задание 2

Erstellen Sie einen Generator, der eine Zahl als Parameter entgegennimmt. Jeder Aufruf des Iterators soll die Zahl um eins verringern, bis Null erreicht ist.

Задание 3

Erstellen Sie einen Generator, der eine Zahl als Parameter entgegennimmt. Jeder Aufruf des Iterators soll die Zahl halbieren und das Ergebnis zurückgeben. Und so weiter, bis die Zahl kleiner als Eins ist.

Задание 4

Erstellen Sie einen Iterator, dessen jeder Aufruf die nächste Potenz von Zwei zurückgibt.

Задание 5

Erstellen Sie einen Iterator, dessen jeder Aufruf die nächste Fibonacci-Zahl zurückgibt.