Set.prototype.forEach()
forEach()
是 Set
实例的方法,它会为该集合中的每个值(按插入顺序)执行一次提供的函数。
试一试
语法
js
forEach(callbackFn)
forEach(callbackFn, thisArg)
参数
返回值
无 (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 语言规范 # sec-set.prototype.foreach |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。