在Javascript中通过数组映射函数数组

tec*_*oke 6 javascript arrays functional-programming

我经常需要将函数列表(处理器)映射到浮点数据的几个数组(通道),所以我写了一个辅助函数...

const mapMany = function(processors, channels){
  processors.forEach( function(processor){
    channels = channels.map( (channel) => channel.map(processor) );
  });
  return channels;
};
Run Code Online (Sandbox Code Playgroud)

这读取OK(至少对我来说!)但是将函数数组映射到另一个数组似乎是如此通用的东西我不禁想知道它是否已经是"一件事",即是否有更好/内置/规范实现这种"Map Many"类型功能的方式,如果是这样,它的正确名称是什么?

Ber*_*rgi 5

是的,有一个更好的方法来实现这一点.不要用forEach!

function mapMany(processors, channels) {
    return processors.reduce((channels, processor) =>
        channels.map(channel => channel.map(processor))
    , channels);
}
Run Code Online (Sandbox Code Playgroud)

但不,没有内置的,也没有规范的名称.这是一个非常具体的功能,但它可以简单地由标准构建块组成.