碎片时间学编程「29]:根据函数取消组合数组元素

创建一个元素数组,将zip生成的数组中的元素解构并应用提供的函数。

使用Math.max()和 ( ...) 展开运算符获取数组中最长的子数组,通过Array.prototype.map()方法使每个元素成为一个数组。

使用Array.prototype.reduce()和Array.prototype.forEach()方法将分组值映射到单个数组。

使用Array.prototype.map()和展开运算符 (...) 应用于fn每个单独的元素组。

const unzipWith = (arr, fn) =>

  arr

    .reduce(

      (acc, val) => (val.forEach((v, i) => acc[i].push(v)), acc),

      Array.from({

        length: Math.max(...arr.map(x => x.length))

      }).map(x => [])

    )

    .map(val => fn(...val));

更多内容请访问我的网站 www.icoderoad.com

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容