Map.prototype.forEach() - JavaScript 编辑

forEach() 方法按照插入顺序依次对 Map 中每个键/值对执行一次给定的函数

语法

myMap.forEach(callback([value][,key][,map])[, thisArg])

参数

callback

myMap 中每个元素所要执行的函数。它具有如下的参数

value 可选
每个迭代的值。
key 可选
每个迭代的键。
map 可选
被迭代的map(上文语法框中的 myMap)。
thisArg 可选
callback 执行中使用的 this 的值。

返回值

undefined.

描述

forEach 方法会对map中每个真实存在的键执行一次给定的 callback 函数。它不会对被删除的键执行函数。然而,它会对每个值为 undefined 的键执行函数。

callback 接收三个参数

  • 当前的 value
  • 当前的 key
  • 正在被遍历的 Map 对象

如果 forEach 中含有 thisArg 参数,那么每次 callback 被调用时,都会被用作 this 的值。否则,undefined 将会被用作 this 的值。按照函数观察到 this 的常用规则callback 函数最终可观察到 this 值。

每个值只被访问一次,除非它被删除了或者在 forEach 结束前被改变了。callback 不会对在被访问前就删除的元素执行。在 forEach 结束前被添加的元素将会被访问。

forEach 会对 Map 对象中的每个元素执行一次 callback。它不会返回值。

示例

输出一个 Map 对象中的内容

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

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 (ECMA-262)
Map.prototype.forEach

浏览器兼容

BCD tables only load in the browser

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

参见

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:127 次

字数:5254

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文