var aa=[1,2,3],bb=[1,2,3],cc=[1,2,3],dd=[1,2,3];
var zz=[aa,bb,cc,dd];//此处数组个数任意
var result=new Array();//结果保存到这个数组
function toResult(arrIndex,aresult)
{
if(arrIndex>=zz.length) {result.push(aresult);return;};
var aArr=zz[arrIndex];
if(!aresult) aresult=new Array();
for(var i=0;i<aArr.length;i++)
{
var theResult=aresult.slice(0,aresult.length);
theResult.push(aArr[i]);
toResult(arrIndex+1,theResult);
}
}
toResult(0);//函数执行后result数组就是所需结果
本文介绍了一个用于生成所有可能数组组合的递归算法。通过定义一个递归函数 toResult,该函数接受当前处理的数组索引及当前组合结果,能够生成由多个相同结构数组构成的所有可能组合。最终将所有组合结果保存在 result 数组中。
1482

被折叠的 条评论
为什么被折叠?



