JavaScript で配列の全要素に処理をする

単純にfor文でやる

var arr = ["hoge", "fuga", "piyo"];

for( var i=0 ; i < arr.length; i++){
    console.log(arr[i]);
}

hoge fuga piyo

for…in – JavaScript | MDN に、

配列に対して反復するときは、数値的な添え字を用いた伝統的な for ループを使うほうがよいのです

と記述があるのでこれが一番いいらしい。

for…in は適さないのはなぜか

  • for…in は、指定したオブジェクトのプロパティに対して順不同で反復処理をする
  • 配列に使用するには、数値順に参照しない可能性もあるし、ユーザー定義のプロパティの名前も返すから適さない
var arr = ["hoge", "fuga", "piyo"];
arr.foo = "hogeee";

for( var i in arr){
    console.log(arr[i]);
}

hoge fuga piyo hogeee

for…of もある

for…of – JavaScript | MDN

  • for…in に似てるけど、プロパティの名前ではなく値を返す
var arr = ["hoge", "fuga", "piyo"];

for(var value of arr){
    console.log(value);
}

hoge fuga piyo

  • また、 iterable objects にしか使えないらしい?
var arr = ["hoge", "fuga", "piyo"];
arr.foo = "hogeee";

for(var value of arr){
    console.log(value);
}

hoge fuga piyo

(arr.foo は返されない)