【发布时间】:2017-10-08 16:22:49
【问题描述】:
假设我们有一个 Map:let m = new Map();,使用 m.values() 返回一个映射迭代器。
但是我不能在那个迭代器上使用forEach() 或map() 并且在那个迭代器上实现一个while 循环似乎是一种反模式,因为ES6 提供了像map() 这样的函数。
那么有没有办法在迭代器上使用map()?
【问题讨论】:
-
不是开箱即用的,但您可以使用第三方库,如
lodashmap函数也支持地图。 -
Map 本身有一个 forEach 用于迭代其键值对。
-
将迭代器转换为数组并像
Array.from(m.values()).map(...)一样映射它,但我认为这不是最好的方法。 -
哪个问题适合您使用迭代器来解决,而数组更适合使用
Array#map? -
@NinaScholz 我正在使用像这里这样的通用集合:stackoverflow.com/a/29783624/4279201
标签: javascript dictionary syntax ecmascript-6 iterator