我承认,这个问题看起来很奇怪。
我想在 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]];
当我事先不知道数组的 nr 时,我如何将arrOfArr
(如在单个数组中)的内容作为多个参数传递给函数?Product
arrOfArr
即: product(arrOfArr) 显然不起作用。