现在有一个不确定长度的数组.
比如:
var temp=[
["Fu","Hai","Huan"],
["Wei","You"],
["Chong","Tong","Zhong"]
];
每一个数组的长计都不确定 ,
如何 遍历这个数组
得到如: FuWeiChong ,FuWeiTong
这样的数据
temp数组的长度不确定
里面的第一个数组的长度不确定
JS:
function doExchange(doubleArrays){
var len=doubleArrays.length;
if(len>=2){
var len1=doubleArrays[0].length;
var len2=doubleArrays[1].length;
var newlen=len1*len2;
var temp=new Array(newlen);
var index=0;
for(var i=0;i<len1;i++){
for(var j=0;j<len2;j++){
temp[index]=doubleArrays[0][i]+doubleArrays[1][j];
index++;
}
}
var newArray=new Array(len-1);
if(len>2){
newArray[1]=doubleArrays[2];
}
newArray[0]=temp;
return doExchange(newArray);
}
else{
return doubleArrays[0];
}
}
//调用示例:
function test(){
var temparr=[
["Fu","Hai","Huan"],
["Wei","You"],
["Chong","Tong","Zhong"]
];
var ret = doExchange(temparr);
console.log("共有:" + ret.length + "种组合!");
for (var i = 0; i < ret.length; i++) {
console.log(ret[i]);
}
}
效果图:
for (var ix = 0; ix < len - 2; ix++) {
//newArray[1] = doubleArrays[2]; //这里要改下
newArray[ix + 1] = doubleArrays[ix + 2];
}
这里改了就符合需求了,
@天行健 自强不息:
修改后的:
function doExchange(doubleArrays){
var len=doubleArrays.length;
if(len>=2){
var len1=doubleArrays[0].length;
var len2=doubleArrays[1].length;
var newlen=len1*len2;
var temp=new Array(newlen);
var index=0;
for(var i=0;i<len1;i++){
for(var j=0;j<len2;j++){
temp[index]=doubleArrays[0][i]+
doubleArrays[1][j];
index++;
}
}
var newArray=new Array(len-1);
for(var i=2;i<len;i++){
newArray[i-1]= doubleArrays[i];
}
newArray[0]=temp;
return doExchange(newArray);
}
else{
return doubleArrays[0];
}
}