配列のような**「要素に順序を持つオブジェクト」**に使える繰り返し処理。

「その要素一つ一つに対して順番に、ある処理をしたい」時に使える。

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