たいていのプログラミング言語にはforeachという命令文があって、配列の全要素をスキャンすることができる。しかし、JavaScriptにはそういう命令は無い。
えっ? じゃあJavaScriptでforeachしたいときはどうするの? 配列の要素の個数を調べてfor文でループさせるの?
まあ、そういうやり方もできるが、JavaScriptでは独立した命令文としてではなく、配列オブジェクトに備わっているforeachメソッドを使用する。
//配列 var my_car = [ { 'maker' : 'MAZDA', 'model' : 'DEMIO', 'grade' : 'XD L pakage' }, { 'maker' : 'Peugeot', 'model' : '206', 'grade' : 'XT' }, { 'maker' : 'Rover', 'model' : 'MINI', 'grade' : 'Cooper 35th Anniversary' } ]; //foreachメソッドで配列の全要素をスキャン my_car.forEach(function (value, index, array){ console.log(index + " : " + value['maker'] + ' : ' + value['model'] + ' : ' + value['grade']); });
上記のコードを実行するとコンソールに配列の内容が出力される。

foreachメソッドの引数には、配列要素、インデックス、配列自身(例ではvalue,index,array)を引数とする関数を渡す。その関数の中で配列の各要素の対する処理を記述する。例では無名関数を使ってその場でコードを記述しているが、別で定義した関数を渡しても良い。
余談だが、無名関数はアロー関数と言う形式で記述することもできる。アロー関数は”function”というキーワードを使わずに”=>”という矢印のような記号を使う。書き方は以下の通り。
(引数,引数) => { コード }
最初の例のforeachに渡す無名関数をアロー関数で書き直すと次のようになる。
my_car.forEach((value, index, array)=>{ console.log(index + " : " + value['maker'] + ' : ' + value['model'] + ' : ' + value['grade']); });
“function”と”=>”、どちらの書き方でも実行結果は同じになる。