我有两个JavaScript数组:
var array1 = [[1,2],[3,4],[5,6,7]];
我希望输出为: [1,3,5],[1,3,6],[1,3,7],[1,4,5],[1,4,6],[1,4,7],[2 1,3,5],[2,3,6],[2,3,7],[2,4,5],[2,4,6],[2,4,7]
答案 0 :(得分:0)
您可以迭代每个单独数组的每个元素。下面的解决方案可能仅适用于三个嵌套数组,但如果您需要一个解决方案来处理可变数量的嵌套数组,则可能需要一个递归函数。
var array1 = [
[1, 2],
[3, 4],
[5, 6, 7]
];
var outputArrays = [];
array1[0].forEach(function(firstElement) {
array1[1].forEach(function(secondElement) {
array1[2].forEach(function(thirdElement) {
outputArrays.push([firstElement, secondElement, thirdElement]);
});
});
});
console.log('output arrays: ',outputArrays);

答案 1 :(得分:0)
我确实找到了这个问题的更好答案。我忘了推它现在我会这样做
var arr = [
[1,2],
[3,4],
[5,6,7]
];
/* what I want is
[[1],[2]] arr i=0
[[1,3],[1,4],[2,3],[2,4]] arr i=1
[[1,3,5],[1,3,6],[1,3,7],.....[2,4,7]] arr i=2
*/
function comarr(arr){
var narr = [[]];//empty
for(var i=0;i<arr.length;i++){
var barr = [];
for(var m=0;m<narr.length;m++){
for(var n=0;n<arr[i].length;n++){
barr.push(narr[m].concat(arr[i][n]))
}
}
narr = barr;
}
return narr;
}