首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

set.forEach

forEach 方法根据集合中元素的顺序,对每个元素都执行提供的 callback 函数一次。

语法

代码语言:javascript
复制
mySet.forEach(callback[, thisArg])

参数

callback每个元素都会执行的函数

thisArg当执行callback函数时候,可以当作this来使用。

返回值

undefined.

描述

这个forEach()方法会针对集合中的每个元素执行提供的callback函数一次。 对于那些已经被删除的元素,它是不会执行的,但是,对于元素是undefined的情况则相反。

callback被调用三个参数

  • 元素的值

  • 元素的索引

  • 将要遍历的集合对象

Set对象中没有索引值(keys),前2个参数都是包含在Set中的元素的值(values),所以该回调函数和Map?以及Array的forEach函数是一致的。

如果提供了一个thisArg参数给forEach函数,当被调用时,该参数将会传递到callback回调函数中来指代this值。否则,this值会是undefined。由回调所能观察到的this对象是根据通常的规则来决定的,这是由一个函数决定的

forEach函数在第一次调用回调函数前确定所要处理的元素的范围。在调用forEach之后添加到Set对象的元素将不会被回调函数访问。如果Set对象的现有元素改变或者删除了,那么该元素传给回调函数的值会是forEach函数访问它们时的值。被删除的元素没有被访问。

forEach函数对每个Set对象的元素执行一次回调;它不会返回任何值。

示例

输出Set对象的内容

以下代码为Set对象中的每个元素记录一行:

代码语言:javascript
复制
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"

规范

Specification

Status

Comment

ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Set.prototype.forEach' in that specification.

Standard

Initial definition.

ECMAScript Latest Draft (ECMA-262)The definition of 'Set.prototype.forEach' in that specification.

Living Standard

?

浏览器兼容性

Feature

Chrome

Edge

Firefox (Gecko)

Internet Explorer

Opera

Safari

Basic support

38

(Yes)

25.0 (25.0)

11

25

7.1

Feature

Android

Chrome for Android

Edge

Firefox Mobile (Gecko)

IE Mobile

Opera Mobile

Safari Mobile

Basic support

No support

38

(Yes)

25.0 (25.0)

No support

No support

8

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com