JavaScriptでジェネレーターを使い方について解説します。
ジェネレーターを使った列挙について教えてください。
ジェネレーターを使うことでfor…ofループを使って列挙可能な値を簡単に生成することができます。
ジェネレーターとは何か
JavaScriptでジェネレーターとは、イテレーターを生成する関数のことを指します。ジェネレーターを使うことで、for…ofループを使って列挙可能な値を簡単に生成することができます。
イテレーターとは、オブジェクトが「順番に」アクセス可能な要素を持つものを指します。JavaScriptでは、イテレーターは内部的に「next()」メソッドを持っていて、このメソッドが呼び出されると次の要素を返すように実装されています。
for…ofで列挙する方法
ジェネレーターを使ってfor…ofで列挙する方法を説明します。ジェネレーター関数を定義し、その中でyield文を使って値を生成します。その後、for…ofを使ってその値を列挙することができます。
以下は、ジェネレーター関数を使ってfor…ofで列挙するサンプルプログラムです。
function* generator() {
yield 1;
yield 2;
yield 3;
}
for (const value of generator()) {
console.log(value);
}
また、以下は、開始と終了の数値を引数にして、それらの間の値を出力するジェネレーター関数のサンプルです。
function* generator(start, end) {
for (let i = start; i <= end; i++) {
yield i;
}
}
for (const value of generator(5, 10)) {
console.log(value);
}
yieldについて
「yield」は、ジェネレーター関数内で使用するキーワードです。ジェネレーター関数は、関数内で「yield」を使って値を生成することができます。
「yield」は、ジェネレーター関数内で呼び出されると、その時点でのジェネレーター関数の実行を一時停止し、生成した値を呼び出し元に返します。次にジェネレーター関数を呼び出すと、前回の呼び出しで停止したところから再開します。このような動きを繰り返すことで、ジェネレーター関数は、順番に値を生成することができます。
以下のサンプルのジェネレーター関数は、1から5までの数値を生成するものです。
function* generator() {
yield 1;
yield 2;
yield 3;
yield 4;
yield 5;
}
const iterator = generator();
console.log(iterator.next().value); // 1
console.log(iterator.next().value); // 2
console.log(iterator.next().value); // 3
console.log(iterator.next().value); // 4
console.log(iterator.next().value); // 5
リスキリングでキャリアアップしてみませんか?
リスキリング(学び直し)は、経済産業省が推奨しており、
今だけ、最大70%のキャッシュバックを受けることができます。
最大70%の給付金が出るおすすめのプログラミングスクール!
国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!
興味のある方はすぐに確認しましょう。
この記事のまとめ
ジェネレーターの使い方について解説しました。
- JavaScriptでジェネレーターとはイテレーターを生成する関数のことを指す。
- for…ofを使ってジェネレーター関数から生成された値を列挙することができる。
- 「yield」は、ジェネレーター関数内で使用するキーワード。
ジェネレーター関数と「yield」の使い方について学ぶことができました!
実際に試してみて、便利な使い方を見つけてください。
コメント