试一试
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 的键,仍然会执行。
callback 会被调用,并带有 **三个参数**:
- 条目的
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);
// Logs:
// "map.get('foo') = 3"
// "map.get('bar') = [object Object]"
// "map.get('baz') = undefined"
规范
| 规范 |
|---|
| ECMAScript® 2026 语言规范 # sec-map.prototype.foreach |
浏览器兼容性
加载中…