基礎からのJavaScript⑤ ~forEachを用いたループ処理~
今回は、タイトルの通り、forEach文を用いたループ処理を紹介したいと思います。
1. forEach文とは
forEach文で行うことのできる処理は、配列数分のループ処理です。
ループ処理の例として、for文を用いて比較してみます。
for文を用いた配列のループ処理の場合、
for (var i = 0; i < array.length; i++){ // array:配列変数
処理内容
}
もしくは、
for (var i in array){ // array:配列変数
処理内容
}
のように書きます。
for()内の
var i = 0; i < array.length; i++
var i in array
は同じものだと認識してもらって問題ないと思います。
上の方で説明すると、1ずつ増えていくiが配列の長さ(array.length)よりも小さい間、ループ処理が行われる、というイメージですね。
これをforEach文に書き換えると…
array.forEach( // array:配列変数
コールバック関数による処理
)
コールバック関数とは何ぞやという感じですが、functionを用いた処理と認識しておけばよいでしょう。(具体的には、次の見出しで説明します。)
2. forEach文の使い方
それでは、実際にforEach文を用いた処理を見ていきましょう。
今回は、配列内に3つの要素(だいふく, やま, かわ)が入っており、これらをループ処理によりログ出力する処理を行いたいと思います。
まずは、配列に要素を定義します。
var noteArray = ['daifuku', 'yama', 'kawa'];
次にforEach文の登場です。
noteArray.forEach( function( item ) {
console.log( item );
});
---------------------------------------------------
出力結果:
daifuku
yama
kawa
forEach文中に処理内容を含むfunction関数が入っていますね。function()内のitemには、配列noteArrayの要素が0番目から順番に1つずつ入ります。
function関数内の処理の流れとしては、上記の場合だと、noteArray[0]の'daifuku'を出力、noteArray[1]の'yama'を出力、noteArray[2]の'kawa'を出力。という流れになります。
3. forEach文での処理をfor文に書き換える
最後に、2. で説明したforEach文での処理をfor文に書き換えてみます。
①for文
for(var i = 0; i < noteArray.length; i++){
console.log(noteArray[i]);
}
②for-in文
for(var i in noteArray){
console.log(noteArray[i]);
}
著者:かわ
この記事が気に入ったらサポートをしてみませんか?