≪ Today I learned. RSS購読
公開日
タグ
JavaScript
著者
ダーシノ(@bc_rikko)

JavaScriptでrangeジェネレータを作る

10〜20の範囲の数値をループで処理したい、みたいなケースがある。for文を使うことで実装可能だが、もっとわかりやすくするためにジェネレータを使ってrange関数を実装する。

for文

for (let i = 10; i <= 20; i++) {
  console.log(i);
}

range関数

for文のインクリメントの処理をジェネレータ内部に隠蔽することで、range関数を実装できる。

function* range(start, end) {
  for (let i = start; i <= end; i++) {
    yield i;
  }
}

for (const i of range(10, 20)) {
  console.log(i);
}