二维数组每组取一个元素组成新的数组,一共多少种组合方式
function doComp(arr,index,res,results){
for (let i = 0; i < arr[index].length; i++){
res[index] = arr[index][i];
if (index === arr.length-1){
results.push([...res]);
}else{
doComp(arr,index+1,res,results);
}
}
}
let arr = [
['a', 'b'],
['1', '2', '3'],
['x', 'y'],
];
let records = [];
doComp(arr,0,[],records);
records.forEach((v,idx)=>{
console.log(idx,JSON.stringify(v));
})
console.log("count = ",records.length);
组合结果:
0 ["a","1","x"]
1 ["a","1","y"]
2 ["a","2","x"]
3 ["a","2","y"]
4 ["a","3","x"]
5 ["a","3","y"]
6 ["b","1","x"]
7 ["b","1","y"]
8 ["b","2","x"]
9 ["b","2","y"]
10 ["b","3","x"]
11 ["b","3","y"]
count = 12