かなり奇妙に見える質問だと私は認めます。
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
つまり、product(arrOfArr)は明らかに機能しません。