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

问题描述

在 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 (将#修改为@)