例子1:
现有一个不规范二维数组 [[1,2,3],[4,5],[6],[7,8,9,10],[11,12],[13,14],[15,16,17],[18,19,20]]想得到该数组的所有组合方式,如[1,4,6,7,11,13,15,18],[1,4,6,7,11,13,15,19]......
代码实现:
function getArray(array1,array2){
var result = [];
for(var i =0,p;p=array1[i];i++){
var pTemp = [];
if(typeof(p) == "object"){
pTemp = p;
}else{
pTemp.push(p);
}
for(var j=0,q;q=array2[j];j++){
var qTemp = [];
if(typeof(q) == "object"){
qTemp = q;
}else{
qTemp.push(q);
}
result.push(pTemp.concat(qTemp));
}
}
return result;
}
var stack = [[1,2,3],[4,5],[6],[7,8,9,10],[11,12],[13,14],[15,16,17],[18,19,20]];
var pop1 = stack.pop();
while(stack.length>0){
var pop2 = stack.pop();
pop1 = getArray(pop1,pop2);
}
var strResult = [];
for(var i = 0;i<pop1.length;i++){
if(typeof(pop1[i])=="object"){
strResult.push(pop1[i].join(" "));
}else{
strResult.push(pop1[i]);
}
}
alert(strResult.join("\n"));