我承认,这是一个非常奇怪的问题。
我想用javascript计算数组数组的笛卡尔积 以下函数(来自https://stackoverflow.com/questions/4796678/javascript-golf-cartesian-product)为我做了这个:
function cartesianProductOf() {
return Array.prototype.reduce.call(arguments, function(a, b) {
var ret = [];
a.forEach(function(a) {
b.forEach(function(b) {
ret.push(a.concat([b]));
});
});
return ret;
}, [[]]);
}
但是需要这样调用:
product([1, 2, 3], [4], [5, 6]); # => [[1, 4, 5], [1, 4, 6], [2, 4, 5], [2, 4, 6], [3, 4, 5], [3, 4, 6]]
但我所拥有的是一个维度未知的数组数组,按照上面的例子说:
var arrOfArr = [[1, 2, 3], [4], [5, 6]];
我如何将arrOfArr
的内容(如在单个数组中)作为多个参数传递给函数Product
,而我事先不知道arrOfArr
中的nr数组?
即:产品(arrOfArr)显然不起作用。
答案 0 :(得分:3)
cartesianProductOf.apply(null,arrOfArr);