Map.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 July 2015.
Map
实例的 forEach()
方法按插入顺序对该 map 中的每个键/值对执行一次提供的函数。
尝试一下
语法
js
forEach(callbackFn)
forEach(callbackFn, thisArg)
参数
callbackFn
-
为 map 中每个元素执行的函数。使用以下参数调用该函数:
thisArg
可选-
执行
callbackFn
时用作this
的值。
返回值
无,undefined
。
描述
forEach
方法会对 map 中每个真实存在的键执行一次提供的 callback
。它不会为被删除的键执行函数。然而,它会为存在但值为 undefined
的值执行函数。
callbackFn
接收三个参数:
- 当前的
value
- 当前的
key
- 正在被遍历的
Map
对象
如果向 forEach
提供了 thisArg
参数,那么每次 callback
被调用时,其都会被传入以用作 this
的值。否则,undefined
将会被传入以用作 this
的值。最终 callback
可观察到的 this
值将会根据确定函数所观察到 this
的常用规则来确定。
每个值只被访问一次,除非它在 forEach
结束前被删除并被重新添加。对于被访问前就删除的值,callback
不会为其调用。在 forEach
结束前被新添加的值都将会被访问。
示例
输出一个 Map 对象中的内容
以下的代码在每行中打印一个 Map
对象中的元素:
js
function logMapElements(value, key, map) {
console.log(`map.get('${key}') = ${value}`);
}
new Map([
["foo", 3],
["bar", {}],
["baz", undefined],
]).forEach(logMapElements);
// 打印:
// "map.get('foo') = 3"
// "map.get('bar') = [object Object]"
// "map.get('baz') = undefined"
规范
Specification |
---|
ECMAScript Language Specification # sec-map.prototype.foreach |
浏览器兼容性
BCD tables only load in the browser