JavaScriptプログラムに関する各種メモ書き

javascript の Generator の使いどころ?

https://qiita.com/uhyo/items/cc68e66e4008a66f3d94

しかし、イテレータには配列には真似できない点がひとつあります。それは無限イテレータを作れるという点です。

● ジェネレータの基本

引用 : https://qiita.com/kura07/items/d1a57ea64ef5c3de8528

// 1~20の数を順番に取り出す
var ary = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
for(var num of ary) console.log(num);

  ↓

// ジェネレータ関数を使って1~20の数を順番に取り出す

// ジェネレータ関数(function* と書きます)
function* generate20Number(from,to) {
  while(from <= to) yield from++;
}
// ジェネレータ
const generator = generate20Number(1, 20);
for(var num of generator) console.log(num);

https://ja.javascript.info/generators

ジェネレータ関数は通常の関数とは異なり、コードを実行しないことです。それらは “ジェネレータ工場(ファクトリー)” として機能します。 function* の実行はジェネレータを返し、その後、ジェネレータに値を要求します。

● ジェネレータ関数の yield* も便利

function* generate3Chars(from,to) {
  yield* ['aaa','bbb','ccc'];
}
const gen = generate3Chars(1, 20);
console.log( ...gen ); // aaa, bbb, ccc 
No.2216
09/20 10:04

edit