1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Javascript 備忘録6<反復処理>

Last updated at Posted at 2021-04-14

■イテレータ
→コードが長くなってしまうので、ジェネレーターを理解するために、このコードも理解しておくこと

function genIterator(max){
    // valueとなる値を初期化しておく
    let i = 0;
    return {
        // next関数を初期化する
        next: function(){
            return {
                // done をfalseにしておく
                // もしも回数を宣言したい場合はifとdone: trueを組み合わせること
                done: false,
                // 呼び出されるたびにインクリメントしていく
                value: i++
            }
        }
    }
}

■ジェネレーター
→イテレータを生成する特別な関数

// functionの後ろに「*」を書くことによりジェネレーターとする
function* gen(){
    // 値を生成していく
    yield 1;
    yield 2;
    // returnが最後の値となる
    return 3;
}

const it = gen();
console.log(it.next())
console.log(it.next())
// ここまでは値があるので、nextが使える
console.log(it.next())
// 4以上は宣言されていないので、valueがundefinedとなり、doneがtrueとなる
console.log(it.next())

■スプレッド演算子
→反復、列挙が可能なオブジェクトを展開するもの

const arry1 = [1,2,3,4,5];
// スプレッド演算子でarry1と同じarry2を宣言する
// 可変長の物の時に使用する
const arry2 = [...arry1];

// 中身は同じだが別のメモリを参照しているので、結果はfalseとなる
console.log(arry1 === arry2)
1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?