この翻訳は不完全です。英語から この記事を翻訳 してください。

forEach() メソッドは、Set オブジェクトの各値に対して一回、挿入順で与えられた関数を実行します。

構文

mySet.forEach(callback[, thisArg])

引数

callback
各要素に対して実行する関数です。taking three arguments:
currentValue, currentKey
The current element being processed in the Set. As there are no keys in Set, the value is passed for both arguments.
set
The Set object which forEach() was called upon.
thisArg
callback を実行するとき、this として使用する値です。

戻り値

undefined です。

説明

forEach() メソッドは Set オブジェクトに実際に存在する各値に対して一回、与えられた callback を実行します。削除された値に対しては呼び出されません。ですが、undefined の値をもつ要素に対しては実行されます。

callback3つの引数で呼び出されます。

  • 要素値
  • 要素キー
  • 対象となる Set オブジェクト

Set オブジェクトにキーはありません。しかし、最初の 2 つの引数は、両方とも Set に含まれるです。そのため callback 関数は MapArrayforEach() メソッドと矛盾がありません。

thisArg 引数が forEach() に与えられた場合、呼び出されたときに this 値として使用するために callback に渡されます。さもなければ、this 値として使用するために undefined 値が渡されます。callback によって最終的に観測可能な this 値は関数から見た this を決定するための通常のルールに応じて決定されます。

forEach によって処理される要素の範囲は最初の callback の呼び出しより前に決定されます。forEach の呼び出しが始まったあとで Set オブジェクトに追加された要素は、callback によって処理されません。Set のオブジェクト内の存在している要素が変更されたり削除されたら、callback に渡される値は、forEach が処理するときの値になります。削除された要素は処理されません。

forEach()Set オブジェクト内の各要素に対して一回 callback 関数を実行します。forEach() は値を返しません。

Set オブジェクトの内容を出力する

次のコードでは、Set オブジェクト内の各要素に対して一行ログを出力します。:

function logSetElements(value1, value2, set) {
    console.log("s[" + value1 + "] = " + value2);
}

new Set(["foo", "bar", undefined]).forEach(logSetElements);

// logs:
// "s[foo] = foo"
// "s[bar] = bar"
// "s[undefined] = undefined"

仕様

仕様書 策定状況 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
Set.prototype.forEach の定義
標準 初期定義
ECMAScript Latest Draft (ECMA-262)
Set.prototype.forEach の定義
ドラフト  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
forEachChrome 完全対応 38Edge 完全対応 12Firefox 完全対応 25IE 完全対応 11Opera 完全対応 25Safari 完全対応 8WebView Android 完全対応 38Chrome Android 完全対応 38Edge Mobile 完全対応 12Firefox Android 完全対応 25Opera Android 完全対応 25Safari iOS 完全対応 8Samsung Internet Android 完全対応 ありnodejs 完全対応 0.12

凡例

完全対応  
完全対応

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mdnwebdocs-bot, segayuu, SphinxKnight, shide55
最終更新者: mdnwebdocs-bot,