微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将迭代器转换为另一个迭代器

如何解决将迭代器转换为另一个迭代器

在 Javascript 中,您可以像这样将迭代器转换为另一个迭代器(大多数语言中的 map() 函数):

function* mapIterator(input,transformer) {
  for (const value of input) {
    yield transformer(value);
  }
}

例如要转换 Map 的值,您可以这样做:

function mapValues(input,transformer) {
  function* gen() {
    for (const [key,value] of input.entries()) {
      yield [key,transformer(value)];
    }
  }
  return new Map(gen());
}

然而,这比将所有内容收集到数组中并在数组上循环要慢一点。我原以为应该有一个执行此 map() 转换的本机函数,但我似乎找不到它。

有这样的功能吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。