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

    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);
    }