2015-04-05 42 views
0

我創建了一個多維數組是這樣的:添加和請求的值到/從多維數組

var lang_arr = {}; 
$('#language li a img').each(function(index) { 
    var lang_arr_helper = []; 
    lang_arr_helper.push(langi); 
    lang_arr_helper.push(getnumber); 
    lang_arr.push(lang_arr_helper); 
}); 

我想用一個循環之後叫它:

for (index=0;index < lang_arr.length;++index) 
{ 
    alert(lang_arr[index][0]+" "+lang_arr[index][1]); 
} 

這不要緊,如果數組或對象,所以如何調用它但需要循環。這是如何完成數組和/或對象?

謝謝!

+1

如果你想要一個數組,然後創建一個數組,而不是一個對象。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Indexed_collections – 2015-04-05 20:07:39

+0

請在左側縮進您的代碼! – Sun 2015-04-05 21:21:30

回答

0

Array.prototype.forEach將遍歷多維JavaScript數組一個方便的方法:這將輸出

[0,0] = 1 
[0,1] = 2 
[0,2] = 3 
[1,0] = 42 
[1,1] = 24 
[2,0] = 8 
[2,1] = 9 
[2,2] = 10 

遍歷對象,使用for(key in obj)構建

var arr = [[1,2,3],[42,24],[8,9,10]]; 

arr.forEach(function(sub,i1) { 
    sub.forEach(function(item,i2) { 
    console.log("["+i1+","+i2+"] = "+item); 
    }) 
}); 

,這將循環所有枚舉的屬性。

var obj = { 
    a:{a:1,b:2,c:3}, 
    b:{x:42,y:24}, 
    c:{u:8,v:9,w:10} 
}; 

for(var key in obj) for(var i in obj[key]) { 
    console.log("["+key+","+i+"] = "+obj[key][i]); 
} 

產生

[a,a] = 1 
[a,b] = 2 
[a,c] = 3 
[b,x] = 42 
[b,y] = 24 
[c,u] = 8 
[c,v] = 9 
[c,w] = 10 
0

你創建對象,而不是陣列。創建數組,你應該:

var lang_arr_helper = new Array(); 
在你沒有在第一時間以同樣的方式

var lang_arr_helper = {}; 

當您使用[]時,它會創建一個對象,該對象沒有要使用的.length屬性。這就是爲什麼for不會遍歷它的原因。