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 2015年7月.
Map
实例的 forEach()
方法按插入顺序对该 map 中的每个键/值对执行一次提供的函数。
尝试一下
function logMapElements(value, key, map) {
console.log(`m[${key}] = ${value}`);
}
new Map([
["foo", 3],
["bar", {}],
["baz", undefined],
]).forEach(logMapElements);
// Expected output: "m[foo] = 3"
// Expected output: "m[bar] = [object Object]"
// Expected output: "m[baz] = undefined"
语法
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® 2026 Language Specification> # sec-map.prototype.foreach> |
浏览器兼容性
Loading…