foreachとmapは違うのですか?
これは、特定の言語に基づいた質問というよりも、コンピュータサイエンスに関する質問なのですが、map操作とforeach操作には違いがあるのでしょうか?それとも、単に同じものの別の名前なのでしょうか?
213
3
これは、特定の言語に基づいた質問というよりも、コンピュータサイエンスに関する質問なのですが、map操作とforeach操作には違いがあるのでしょうか?それとも、単に同じものの別の名前なのでしょうか?
異なる。
foreach はリストに対して反復処理を行い、各リストメンバーに対して副作用のある操作を適用します(たとえば、各リストをデータベースに保存するなど)。
map はリストに対して反復処理を行い、そのリストの各メンバーを変換し、変換後のメンバーで同じサイズの別のリストを返します(例えば、文字列のリストを大文字に変換する場合など)。
両者の重要な違いは、
map
がすべての結果をコレクションに蓄積するのに対して、foreach
は何も返さないということです。通常、map
は要素のコレクションを関数で変換したいときに使用されるのに対し、foreach
は単に各要素に対してアクションを実行します。特にJavascriptの場合、
map
がループ関数であるのに対し、forEach
はイテレータであるという違いがあります。リストの各メンバーに操作を適用して、その結果を新しいリストとして取得したいときに、元のリストに影響を与えずに
map
を使用します。forEach` は、リストの各要素に対して do を行いたいときに使用します。例えば、ページに何かを追加するような場合です。基本的に、これは副作用が必要な場合に最適です。
その他の違いまた、渡された関数はインデックスとリスト全体への参照を取得しますが、map は新しいリストを返し、現在の要素のみを渡します。