在迭代器上使用 map()

2024-04-10

假设我们有一张地图:let m = new Map();, using m.values()返回一个地图迭代器。

但我不能使用forEach() or map()在该迭代器上并在该迭代器上实现 while 循环似乎是一种反模式,因为 ES6 提供了类似的函数map().

那么有没有办法使用map()在迭代器上?


The simplest and 表现最差这样做的方法是:

Array.from(m).map(([key,value]) => /* whatever */)

更好的是

Array.from(m, ([key, value]) => /* whatever */))

Array.from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from接受任何可迭代或类似数组的东西并将其转换为数组!正如 Daniel 在评论中指出的那样,我们可以向转换添加映射函数,以删除迭代以及随后的中间数组。

Using Array.from会将你的表现从O(1) to O(n)正如@hraban 在评论中指出的那样。自从m is a Map,而且它们不可能是无限的,我们不必担心无限序列。对于大多数情况,这就足够了。

还有几种其他方法可以循环遍历地图。

Using forEach

m.forEach((value,key) => /* stuff */ )

Using for..of

var myMap = new Map();
myMap.set(0, 'zero');
myMap.set(1, 'one');
for (var [key, value] of myMap) {
  console.log(key + ' = ' + value);
}
// 0 = zero
// 1 = one
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在迭代器上使用 map() 的相关文章

随机推荐

  • 如何在 BindableLayout.ItemsSource 中绑定项目的索引

    我想要一个按钮集合 将 MyObservableCollection 中相应项目的索引显示为文本 并执行命令 其中 CommandParameter 也是该索引 我怎样才能实现这个目标
  • 汉明数和双精度

    我正在玩生成汉明数 http en wikipedia org wiki Regular number在 Haskell 中 尝试改进明显的功能 请原谅函数的命名 mergeUniq Ord a gt a gt a gt a mergeUn
  • Neo4j/Gremlin/Cypher:如何获取所有节点,直到我在类似地图的设置中达到一定距离(深度)?

    我有一个带有字段的简单图表 每个字段有 4 个邻居 东北 南 西 NodeEntity public class Field GraphId Long id Field north Field east Field south Field
  • 跟踪实现特定接口的所有类?

    很难解释我真正想要什么 我有一个有方法的接口getRuntimeInfo 它为我提供了类变量的所有运行时调试信息 我想查看实现该接口的所有类的列表 我正在使用 Java 和 Spring 我可以做到这一点的一种方法是从 Spring Con
  • SQL Server 数据库更改侦听器 C#

    我想从 C 监听 SQL Server 数据库中数据的更改 我希望有某种监听器可以用来确定我拥有的数据是否过时 尽管这是一个相当常见的场景 但我找不到任何不简单地轮询数据库的解决方案 I use Linq 到 SQL访问数据 因此有一个数据
  • NSObject 和 AnyObject 有什么区别?什么时候使用两者?

    我正在尝试创建一个数组来存储字符串或自定义类的数组 我最好创建一本字典吗 AnyObject是 Objective C 的 Swift 代表id类型 它比NSObject 即每个NSObject is an AnyObject 但不是每个A
  • 如何防止 Ansible 对 JSON 重新排序?

    给定以下剧本 从随机数据中获取一些数据网络服务 http jsonplaceholder typicode com users name sorting json hosts localhost tasks name uri url htt
  • 如何消除qmake的“警告:找不到:”?

    我在用着PRE TARGETDEPS生成源文件 我将生成的源文件添加到SOURCES用于编译 我的生成器的输出显然在 qmake 运行时不存在 所以 qmake 输出WARNING Failure to find 对于每个要创建的源文件 既
  • Nodejs 中的“function*()”是什么意思? [复制]

    这个问题在这里已经有答案了 我遇到了这个偶像 function 从这个页面https github com jmar777 suspend https github com jmar777 suspend并且不确定它是做什么的 有人能解释一
  • 检查字符串类型是否为字符串

    我希望解析关键字参数以确定它们是否也引用类型 例如下面的情况 from inspect import isclass def convert converting kwargs for key value in kwargs items i
  • 如何快速禁用和启用自动旋转?

    在一般设置中 我允许纵向和横向左 横向右模式 我想关闭横向模式 在 viewController 上我写了这段代码 override func shouldAutorotate gt Bool return false 但是 自动旋转会忽略
  • 如何通过 Facebook Graph Api 获取用户的朋友在生日当天在用户墙上发布的帖子?

    我正在尝试构建一个 Chrome 扩展程序 我想获取人们专门在用户生日那天发布在用户墙上的所有帖子 我尝试通过 Facebook Javascript SDK 进行调用 但它没有返回我的朋友在生日那天发布的帖子 FB api me feed
  • 使用 Owin.Testing 时获取远程 ip

    我使用 Owin Testing 作为测试环境 在我的控制器中 我需要从调用者那里获取远程 IP 地址 in my controller method var ip GetIp Request Util private string Get
  • Java mp4parser片段序列不连续性

    此用例是一项服务 手动将一系列未压缩的 wav 媒体片段编码为 m4s 片段 以便通过 MPEG DASH 广播 使用 ffmpeg 将 wav 压缩为 aac 并使用 sannies mp4parser 将 aac 音频组装为 m4s 片
  • Mocha 如何知道在测试套件中首先加载哪个文件

    我正在尝试学习 MongodB 的测试驱动方法 文件夹结构 A user js在src文件夹中测试 const mongoose require mongoose mongoose Promise require bluebird cons
  • 异常信息:System.Reflection.TargetInitationException

    我正在开发 WPF 应用程序 仅在单个设备上运行时收到此错误 Exception Info System Reflection TargetInvocationException 我的问题 有什么线索可能导致此错误吗 知道如何在发布模式下调
  • 核心数据同步

    有没有办法自动将我的核心数据模型与服务器同步 最好是 REST Thanks 苹果已经分享了他们的同步服务框架 记录如下 http developer apple com documentation Cocoa Conceptual Syn
  • 了解 C++ 内存模型:不同运行时的不同值

    下面的代码有什么问题 我预计消费者 1 和消费者 2 会生成 10 个 但有时会看到 1 include
  • 画布和输入映射

    我正在用 Java 构建一个 2d 游戏 我决定使用 Canvas 在上面显示与当前帧相关的图像 我使用 Canvas 是因为我听说它在时间方面比 JPanel 更高效 这是真的吗 另外 我想通过以下方式向游戏添加一些输入键绑定因为关键听众
  • 在迭代器上使用 map()

    假设我们有一张地图 let m new Map using m values 返回一个地图迭代器 但我不能使用forEach or map 在该迭代器上并在该迭代器上实现 while 循环似乎是一种反模式 因为 ES6 提供了类似的函数ma