gpt4 book ai didi

javascript map函数接受多个数组作为参数

转载 作者:行者123 更新时间:2023-11-30 17:46:17 24 4
gpt4 key购买 nike

像这样的js函数怎么写?

map(add, [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12])
=> [15, 18, 21, 24]

我正在尝试编写 clojure map 函数的原生 js 版本

(map + [1 2 3] [4 5 6])
=> [5 7 9]

其中 map 接受一个函数和之后的任意数量的数组

最佳答案

有点像

pythonic_map = function(fun) {
var args = [].slice.call(arguments, 1)
return args[0].map(function(_, i) {
return fun.apply(null, args.map(function(x) { return x[i] }));
});
}

例子:

function add(a, b, c) {
return a + b + c
}

z = pythonic_map(add, [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12])
console.log(z) // [15,18,21,24]

这使用第一个参数的长度,来使用最短/最长的参数:

pythonic_map = function(fun) {
var args = [].slice.call(arguments, 1);
return args.reduce(function(m, x) {
return (x.length < m.length) ? x : m; // or > for the longest
}).map(function(_, i) {
return fun.apply(null, args.map(function(x) { return x[i] }));
});
}

关于javascript map函数接受多个数组作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20109193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com