此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
Set.prototype.forEach()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Set 实例的forEach() 方法按插入顺序为该集合中的每个值执行一次提供的函数。
In this article
尝试一下
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)参数
返回值
无(undefined)。
描述
forEach() 方法对Set 对象中实际存在的每个值执行一次提供的callback。对于已删除的值,不会调用它。但是,它会对存在但值为undefined 的值执行。
callback 被调用时带有三个参数:
- 元素的值
- 元素的键
- 被遍历的
Set
Set 对象中没有键,所以前两个参数都是Set 中包含的值。这是为了与Map 和Array 的forEach() 方法保持一致。
如果提供了一个thisArg 参数给forEach 函数,则参数将会作为回调函数中的this值。否则this 值为undefined。回调函数中this 的绑定是根据函数被调用时通用的this 绑定规则来决定的。
每个值都访问一次,除非在forEach() 完成之前删除并重新添加它。在访问之前删除的值不会调用callback。在forEach() 完成之前添加的新值将被访问。
forEach() 对Set 对象中的每个元素执行一次callback 函数;它没有返回值。
示例
>输出集合对象的内容
以下代码依次打印Set 对象的元素:
js
function logSetElements(value1, value2, set) { console.log(`s[${value}] = ${value2}`);}new Set(["foo", "bar", undefined]).forEach(logSetElements);// logs:// "s[foo] = foo"// "s[bar] = bar"// "s[undefined] = undefined"规范
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-set.prototype.foreach> |