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

map.forEach

forEach()?方法将会以插入顺序对 Map 对象中的每一个键值对执行一次参数中提供的回调函数。

语法

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

参数

callback必要,每个元素所要执行的函数。thisArg可选,callback执行时其?this的值。

返回值

undefined.

描述

forEach?方法将对Map中真实存在的每一个元素执行一次?参数中提供的回调函数,它不会对任何已经被删除的元素执行调用。然而,它还会对键存在而值为?undefined 的元素执行调用。

callback函数有三个参数:

  • 元素的值

  • 元素的键

  • Map

如果参数forEach带有一个?thisArg 参数,在调用的时候,?这个参数?将传给callback函数作为其?this 的值。否则,?函数将默认使用?undefined?传给callback函数作为其?this值。?最终,这里的 this 的值将依照函数观测并确定?this?的相关规则?由?callback函数最终观察到的值决定。

forEach函数处理的元素的范围为第一次执行 callback 函数时 Map 对象中的键值对集合。在Map对象调用forEach之后加入的元素将不会被调用callback函数。如果在调用forEach之后Map对象中的被改变或者删除了,它们传给callback函数的值将会变成forEach函数访问它们时的值;callback不会访问其调用其间被删除的元素。

forEach 仅仅是对Map对象中的每一个?元素执行一遍callback函数,然后直接返回undefined

示例

打印一个 Map 对象中的元素

下面的代码在一行中打印一个Map对象的每一个元素:

代码语言:javascript
复制
function logMapElements(value, key, map) {
    console.log(`m[${key}] = ${value}`);
}
new Map([['foo', 3], ['bar', {}], ['baz', undefined]]).forEach(logMapElements);
// logs:
// "m[foo] = 3"
// "m[bar] = [object Object]"
// "m[baz] = undefined"

规范

Specification

Status

Comment

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

Standard

Initial definition.

ECMAScript Latest Draft (ECMA-262)The definition of 'Map.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