现在有一个不确定长度的数组.
比如:
var temp=[
["Fu","Hai","Huan"],
["Wei","You"],
["Chong","Tong","Zhong"]
];
每一个数组的长计都不确定 ,
如何 遍历这个数组
得到如: FuWeiChong ,FuWeiTong
这样的数据
比如:
var temp=[
["Fu","Hai","Huan"],
["Wei","You"],
["Chong","Tong","Zhong"]
];
每一个数组的长计都不确定 ,
如何 遍历这个数组
得到如: FuWeiChong ,FuWeiTong
这样的数据
解决方案 »
- ie6变量函数无效,ie7、8、9可以
- IE和Chrome下框架页面通过js提交数据返回后页面traget出现问题。
- 关于javascript调用后台函数问题
- javascript基础语法问题
- 身份证验证的js代码
- 我是初学者,望高手不吝赐教。怎样实现下拉菜单功能?就像csdn的“显示导航栏”,不过不要求树形功能,只要点击后能有下拉菜单出现就行。
- 请教一个问题:我打开(或弹出)一个页面,传递一些参数,在这个页面打开之后,地址栏能否不显示这些参数
- 如何让网页中图片顶格
- 帮助
- 网页是否支持类似于网格的操作
- js 读取服务器文件报错?
- EXT 3.0 + Struts 2 + JSON Grid无法显示数据 = =
var temp=[["Fu","Hai","Huan"],
["Wei","You"],
["Chong","Tong","Zhong"]];
for(var i=0;i<temp[0].length;i++){
for(var j=0;j<temp[1].length;j++){
for(var k=0;k<temp[2].length;k++){
alert(temp[0][i]+temp[1][j]+temp[2][k]);
}
}
}
这个意思?
你这样写的话,就把temp的长度固定了
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) {
for (var ix = 0; ix < len - 2; ix++) {
newArray[ix + 1] = doubleArrays[ix + 2];
}
}
newArray[0] = temp;
return doExchange(newArray);
}
else {
return doubleArrays[0];
}
}
http://q.cnblogs.com/q/29093/
function each(arr, fn) {
var len = arr.length;
for(var i = 0; i < len; i++) {
fn(arr[i]);
}
}
function merge(arr1, arr2) {
var temp = [];
each(arr1, function(v1) {
each(arr2, function(v2) {
temp.push(v1 + v2);
});
});
return temp;
}
function display(arr) {
var temp = arr.slice(0);
var result = temp.shift();
each(temp, function(v) {
result = merge(result, v);
});
return result;
} var temp1 = [["Fu", "Hai", "Huan"], ["Wei", "You"], ["Chong", "Tong", "Zhong"]];
var re = display(temp1);
each(re, function(v) {
document.write(v + '<br/>');
});
var arr=[
["Fu","Hai","Huan"],
["Wei","You"],
["Chong","Tong","Zhong"]
];
var temp=new Array(arr.length)
for(var i=0;i<temp.length;i++)
temp[i]=0;
var index=arr.length-1;
while(index>=0){
for(var i=0;i<arr.length;i++){
document.write(arr[i][temp[i]]+" ");
}
document.write("<br/>");
index=arr.length-1;
while(index>=0&&++temp[index]==arr[index].length){
temp[index]=0;
index--;
}
}
</script>
/*
Fu Wei Chong
Fu Wei Tong
Fu Wei Zhong
Fu You Chong
Fu You Tong
Fu You Zhong
Hai Wei Chong
Hai Wei Tong
Hai Wei Zhong
Hai You Chong
Hai You Tong
Hai You Zhong
Huan Wei Chong
Huan Wei Tong
Huan Wei Zhong
Huan You Chong
Huan You Tong
Huan You Zhong */
var temp = [
["Fu","Hai","Huan"],
["Wei","You"],
["Chong","Tong","Zhong"],
"1","2",
["5","4","8"]
];
function isArray(obj){
return Object.prototype.toString.call(obj) === "[object Array]"
}
var str = "";
function recursion(arr){
for (var i = 0, j = arr.length; i < j; i++) {
var m = arr[i];
if (isArray(m)){
arguments.callee(m);
} else {
str += arr[i] + ",";
}
}
}
recursion(temp);
alert(str);
var temp=[["1","2","3"],["a","b","c","d"],["A","B"],["+","-","*","/"]];
var nullcount=0;
function display(item,index) {
if (isArray(item)&&isArray(item[0])) {
for (var i=0; i < item.length; i++) {
display(item[i],index);
};
if(nullcount==temp.length)return;
ss+=",";
display(item,index+1);
}else if(isArray(item)){
//计算二级数组最大长度,全部递归完时跳出
if(item[index]==undefined){
nullcount++;
}else{
nullcount=0;
}
ss+=item[index]||"";//剔除undefined
}
};
display(temp,0);
alert(ss);
楼主要的应该是这样的吧