JavaScriptのジェネレータ
独自のイテレータを作成するための特別な関数があります。 そのような関数はジェネレータと呼ばれます。 そのような関数の名前はアスタリスクから始める必要があります:
function *func() {
}
ジェネレータ内では、イテレータが次に呼び出された際に返すべきものを示すキーワード
yieldが使用されます。
例として、最初の呼び出しで1を返し、2回目で2、
3回目で3を返すようにしてみましょう:
function *func() {
yield 1;
yield 2;
yield 3;
}
ジェネレータはその結果としてイテレータを返します:
let iter = func();
作成したイテレータの動作を確認してみましょう:
console.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}
5から1までの数字を返すイテレータを作成してください。