创建一个元素数组,将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