如何使用 forEach() 遍历 JavaScript Map
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论