はじめに
JavaScriptの配列におけるfor in
とfor of
で、どっちがindex
で、どっちがvalue
だったのか、いつも混乱して都度ググル羽目になるため、メモっておく。
配列におけるfor in
とfor of
の違い
まずfor in
例1
for (var n in [0, 2, 4, 6, 8, 10]) console.log(n);
結果は、
結果1
[Log] 0
[Log] 1
[Log] 2
[Log] 3
[Log] 4
[Log] 5
つまり、index
である。
『しかしながら、「for – in文」はJavaScriptの実行環境やブラウザのバージョンによって、必ず要素の順番通りに出力されることが保証されていません。
配列の要素を扱う場合は、オブジェクトよりも順番を保証して欲しいケースが多いと思いますので、この場合は素直に「for文」を使いましょう。』という重要な制約がある。
次にfor of
例2
for (var n of [0, 2, 4, 6, 8, 10]) console.log(n);
結果は、
結果2
[Log] 0
[Log] 2
[Log] 4
[Log] 6
[Log] 8
[Log] 10
つまり、value
である。
まとめ
色々な言語を使っていると、どれがどれだったのか混乱することがある。
for in
でvalue
をとる言語があったことが今回の混乱の素である。