Movatterモバイル変換


[0]ホーム

URL:


  1. 面向开发者的 Web 技术
  2. JavaScript
  3. JavaScript 参考
  4. JavaScript 标准内置对象
  5. Set
  6. Set.prototype.forEach()

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in EnglishAlways switch to English

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() 方法按插入顺序为该集合中的每个值执行一次提供的函数。

尝试一下

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)

参数

callback

为集合中每个元素执行的函数,使用以下参数调用该函数:

value

每次迭代的值。

key

每次迭代的键。始终与value 相同。

set

正在迭代的集合。

thisArg可选

执行callbackFn 时用作this 的值。

返回值

无(undefined)。

描述

forEach() 方法对Set 对象中实际存在的每个值执行一次提供的callback。对于已删除的值,不会调用它。但是,它会对存在但值为undefined 的值执行。

callback 被调用时带有三个参数

  • 元素的值
  • 元素的键
  • 被遍历的Set

Set 对象中没有键,所以前两个参数都是Set 中包含的。这是为了与MapArrayforEach() 方法保持一致。

如果提供了一个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

浏览器兼容性

参见

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp