Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
forEach() メソッドは、与えられた関数を、配列の各要素に対して一度ずつ実行します。
配列のそれぞれの要素に対して実行する関数。返値は破棄されます。この関数は以下の引数で呼び出されます。
element現在処理中の配列の要素です。
index現在処理中の配列の要素のインデックスです。
arrayforEach() が呼び出されている配列です。
thisArg 省略可callbackFn を実行するときに this として使用する値です。反復処理メソッドを参照してください。
なし (undefined)。
forEach() メソッドは反復処理メソッドです。指定された関数 callbackFn を配列に含まれる各要素に対して一度ずつ、昇順で呼び出します。 map() と異なり、 forEach() は常に undefined を返し、連鎖させることはできません。典型的な使用する用途は、チェーンの終わりで副次効果を実行することです。これらのメソッドが一般的にどのように動作するのかについての詳細は、反復処理メソッドの節をご覧下さい。
callbackFn は値が割り当てられている配列インデックスに対してのみ呼び出されます。疎配列で空のスロットに対しては呼び出されません。
forEach() メソッドは汎用的です。これは this 値に length プロパティと整数キーのプロパティがあることだけを期待します。
例外を発生する以外の方法で、 forEach() ループを止めたり脱出したりする方法はありません。そのような動作を行う場合、 forEach() メソッドは適切な方法ではありません。
早期終了は for, for...of, for...in のようなループ文で行うことができます。また、every(), some(), find(), findIndex() のような配列メソッドも、それ以上の反復処理が不要な場合は、直ちに反復処理を停止します。
forEach() は同期関数を期待します。プロミスを待ちません。forEach のコールバックとしてプロミス(または非同期関数)を使用する場合は、その意味合いを理解しておくようにしてください。
一連の非同期処理を順次または並列に実行するには、プロミスの合成を参照してください。
メモ: 配列の内容をコンソールに表示するために、配列の整形済みのバージョンを表示する console.table() を使用することができます。
以下の例では同じことを forEach() を使用して行う他の方法を説明しています。
次のコードは配列の要素ごとに、コンソールに 1 行ずつ要素の内容を出力します。
以下の(不自然な)例は、配列の中の各項目からオブジェクトのプロパティを更新します。
thisArg 引数 (this) が forEach() に提供されているため、callbackFn の呼び出しのたびにこれが渡されます。コールバックはこれを this の値として使用します。
次のコードは与えられたオブジェクトのコピーを生成します。
オブジェクトのコピーを作成するには様々な方法があります。 以下のものは一つの方法で、Array.prototype.forEach() が Object.* ユーティリティ関数を使用して、どのように動作するかを説明しています。
次の例は学習目的だけのものです。組み込みメソッドを使用して配列を平坦化したい場合は、Array.prototype.flat() を使用することができます。
array 引数は、配列の別の要素にアクセスしたい場合、特に配列を参照する既存の変数を保有していない場合に便利です。次の例では、最初の filter() を使用して正の値を抽出し、次に forEach() を使用してその付近をログに記録します。
3 と 7 の間の値がないところで、コールバック関数が呼び出されなかったことが分かります。
forEach() メソッドは this の length プロパティを読み込み、次にキーが length より小さい非負の整数である各プロパティにアクセスします。
| ECMAScript® 2027 Language Specification # sec-array.prototype.foreach |
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。