この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - フロントエンド面接質問
15. `Array.prototype.forEach()` vs `Array.prototype.map()`
Array.prototype.forEach()
とArray.prototype.map()
はどちらも配列の各要素に対して関数を実行することができますが、動作に微妙な違いがあります。
forEach()
は、配列の各要素をループして、1つずつ関数を呼び出します。それぞれの要素に対して何らかの操作を行いたい場合に使用します。
一方、map()
は、配列の各要素をループして、各要素に対して引数として与えられた関数を適用し、新しい配列を作成します。新しい配列は、元の配列と同じ長さになります。
例えば、以下のようなコードがある場合を考えてみましょう。
let numbers = [1, 2, 3, 4, 5];let resultForEach = [];numbers.forEach(num => { resultForEach.push(num * 2);});let resultMap = numbers.map(num => { return num * 2;});
resultForEach
は[2, 4, 6, 8, 10]という配列が、resultMap
は[2, 4, 6, 8, 10]という配列が生成されます。
要素の変換だけでなく、オブジェクトやDOM要素などを生成する場合にもmap()
を使用できます。一方、何らかの処理を行うだけで、新しい配列を生成する必要がない場合は、forEach()
を使用する方が良いでしょう。