如何使用 forEach() 遍历 JavaScript Map

发布于 2023-01-08 18:58:25 字数 2231 浏览 50 评论 0

JavaScript的 Map对象 有一个方便的功能, forEach(),它的操作类似于 数组 forEach() 功能 。 JavaScript 调用 forEach() 带有 3 个参数的回调:值、键和 Map 本身。

const map = new Map();
map.set('greeting', 'Hello');
map.set('name', 'John');

map.forEach((value, key, map) => {
  // Prints "greeting Hello" followed by "name John"
  console.log(value, key);
});

Map#entries()

JavaScript 映射没有可链接的帮助程序,例如 filter() 或者 map() 对于数组。 如果你想使用 filter() 有了地图,你应该使用 Map#entries() 首先将映射转换为迭代器,然后使用 展开运算符 Array.from() 将迭代器转换为数组的函数。

const map = new Map();
map.set('greeting', 'Hello');
map.set('name', 'John');

[...map.entries()]; // [['greeting', 'Hello'], ['name', 'John']]
Array.from(map.entries()); // [['greeting', 'Hello'], ['name', 'John']]

// Equivalent since `entries()` is the default iterator
[...map]; // [['greeting', 'Hello'], ['name', 'John']]

// First convert map into an array of entries, then you can use `filter()`
[...map.entries()].filter(([key, value]) => value.length > 4); // [['greeting', 'Hello']]

Map#keys() 和 Map#values()

如果您只需要的键或值 Map, 您可以使用 Map#keys() 或者 Map#values()Map#keys() 返回地图键上的迭代器,并且 Map#values() 返回映射值的迭代器。 确保使用展开运算符或将迭代器转换为数组 Array.from() 如果你想使用 filter() 或者 map()

const map = new Map();
map.set('greeting', 'Hello');
map.set('name', 'John');

Array.from(map.keys()); // ['greeting', 'name']
Array.from(map.values()); // ['Hello', 'John']

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

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

发布评论

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

关于作者

半世蒼涼

暂无简介

0 文章
0 评论
788 人气
更多

推荐作者

留蓝

文章 0 评论 0

18790681156

文章 0 评论 0

zach7772

文章 0 评论 0

Wini

文章 0 评论 0

ayeshaaroy

文章 0 评论 0

初雪

文章 0 评论 0

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