ソフトウェアエンジニアの日常の雑記

日々思ったことをまとめます

for-ofループ

Firefox13にアップデートして、ECMAScript6の仕様である"for-of"ループというのが使えるようになったらしい。早速試す。

var arr = [ 3,5,7 ];
arr.foo = "hello";

for(var i in arr){
   console.log(i);  // 0 , 1 , 2 , foo
}

for(var i of arr){
   console.log(i)   // 3 , 5 , 7
}

となる。
for-inループの方はkeyを取り出すのに対し、for-ofループはvalueを取り出せる。key指定せずに値取り出せるのは便利かなと思います。

var arr = {1:"a",2:"b"};

for(var i of arr){
   console.log(i)
}
// TypeError: arr is not iterable

ただし、これはエラーとなってしまいます。うーん。なんだかなー。