配列のような**「要素に順序を持つオブジェクト」**に使える繰り返し処理。
「その要素一つ一つに対して順番に、ある処理をしたい」時に使える。
forでも同じ内容のものを書けるが、forEachだともう少し簡単に書ける。
※forEach(); はオブジェクトには使えない。が、Object.keys(); を使うことで、オブジェクトを配列として扱えるようになり、結果的にforEach(); を使えるようになる。詳しくは下部に記載。
forは汎用的な繰り返し処理。順序などがなく、単純に「ある処理をN回繰り返したい」なんて時に使うといい。
▼書き方
定数名.forEach((仮引数) ⇒ { 処理 });
forEach();の()の中にはアロー関数を書いてあげるんだよ!
▼例)
'use strict';
//forEachで書いたもの
{
const scores = [80, 90, 40, 70];
scores.forEach((score, index) => {
console.log(`Score ${index}: ${score}`);
});
}
//上記をforで書くとこうなる。
{
const scores = [80, 90, 40, 70];
for(let i = 0; i < scores.length; i++) {
console.log(`Score ${i}: ${scores[i]}`);
}
}
forEach();を使う場合の注意点【Object.keys(); を使おう】
冒頭の※でも書いたが、オブジェクトではそのままの状態でforEach(); を使うことはできない。
一度Object.keys(); でオブジェクトを配列に変換する作業が必要。
変換されたオブジェクトでは、キーを文字列として取得する。
つまり、キーが要素として扱えるようになる。値を扱いたい場合は、オブジェクトの変数名[ forEach();で定義した引数 ] と書けばOK