Set.prototype.forEach()
Set 例項的 forEach() 方法會在該集合中的每個值上執行一次提供的函式,執行順序為插入順序。
試一試
function logSetElements(value1, value2, set) {
console.log(`s[${value1}] = ${value2}`);
}
new Set(["foo", "bar", undefined]).forEach(logSetElements);
// Expected output: "s[foo] = foo"
// Expected output: "s[bar] = bar"
// Expected output: "s[undefined] = undefined"
語法
js
forEach(callbackFn)
forEach(callbackFn, thisArg)
引數
回撥-
一個函式,用於執行集合中的每個條目。該函式會接收以下引數:
thisArg可選-
執行
callbackFn時用作this的值。
返回值
無(undefined)。
描述
forEach() 方法會對 Set 物件中實際存在的每個值呼叫一次提供的 callback。對於已被刪除的值,它不會被呼叫。但是,對於存在但值為 undefined 的值,它會被執行。
callback 的呼叫會接收到 三個引數:
- 元素值
- 元素鍵
- 正在遍歷的
Set物件
Set 物件沒有鍵,因此前兩個引數都是 Set 中包含的 值。這是為了與 Map 和 Array 的其他 forEach() 方法保持一致。
如果向 forEach() 提供了 thisArg 引數,它將在呼叫 callback 時作為其 this 值傳遞。否則,將傳遞 undefined 值作為其 this 值。最終 callback 可觀察到的 this 值根據 確定函式看到的 this 的常規規則 來確定。
每個值都會被訪問一次,除非在 forEach() 完成之前被刪除然後重新新增。callback 不會為在訪問之前被刪除的值呼叫。在 forEach() 完成之前新增的新值將會被訪問。
forEach() 對 Set 物件中的每個元素執行一次 callback 函式;它不返回值。
示例
記錄 Set 物件的內容
下面的程式碼會為 Set 物件中的每個元素記錄一行內容
js
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® 2026 語言規範 # sec-set.prototype.foreach |
瀏覽器相容性
載入中…