JavaScriptにおけるジェネレーター内のループ

ジェネレーター内部ではループを使用できます。 このとき、yieldを使用してループを一時停止することができます。 例を見てみましょう。各イテレーションでループを一時停止します:

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

イテレーターを取得します:

javascriptlet iter = func();

私たちのイテレーターの動作を確認しましょう:

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

毎回の呼び出しで10から0までの数字を返すイテレーターを作成してください。

Задание 2

数字をパラメータとして受け取るジェネレーターを作成してください。 イテレーターが呼び出されるたびに、ゼロに達するまで数字を1つずつ減らしていきます。

Задание 3

数字をパラメータとして受け取るジェネレーターを作成してください。 イテレーターが呼び出されるたびに、数字が1未満になるまで、数字を半分に減らして結果を返します。

Задание 4

毎回の呼び出しで次の2の累乗を返すイテレーターを作成してください。

Задание 5

毎回の呼び出しで次のフィボナッチ数を返すイテレーターを作成してください。