JavaScriptジェネレーターの基本


  1. ジェネレーターの定義と使用例

ジェネレーターは、function*キーワードを使用して定義されます。次の例は、1から10までの整数を生成するジェネレーターの定義と使用方法です。

function* countGenerator() {
  for (let i = 1; i <= 10; i++) {
    yield i;
  }
}
const generator = countGenerator();
for (const number of generator) {
  console.log(number);
}
  1. ジェネレーターの一時停止と再開

ジェネレーターは、yieldキーワードを使用して値を返すだけでなく、一時停止することもできます。次の例では、ジェネレーター内で一時停止と再開を行っています。

function* pauseResumeGenerator() {
  console.log('処理を開始しました');
  yield '一時停止1';
  console.log('処理を再開しました');
  yield '一時停止2';
  console.log('処理を終了しました');
}
const generator = pauseResumeGenerator();
console.log(generator.next().value);
console.log(generator.next().value);
console.log(generator.next().value);
  1. ジェネレーターを使用した無限データの生成

ジェネレーターを使用すると、無限のデータシーケンスを生成することも可能です。次の例は、フィボナッチ数列を生成するジェネレーターです。

function* fibonacciGenerator() {
  let a = 0;
  let b = 1;
  while (true) {
    yield a;
    [a, b] = [b, a + b];
  }
}
const generator = fibonacciGenerator();
for (let i = 0; i < 10; i++) {
  console.log(generator.next().value);
}

以上のように、JavaScriptのジェネレーターは非常に強力であり、反復処理を容易に行うための重要なツールです。是非、これらの基本とコード例を使って、自身のプロジェクトに応用してみてください。