Javascript 向多维数组添加值或从多维数组请求值
我创建了一个多维数组,如下所示:Javascript 向多维数组添加值或从多维数组请求值,javascript,arrays,object,Javascript,Arrays,Object,我创建了一个多维数组,如下所示: 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;i
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]);
}
不管是数组还是对象,所以如何调用它并不重要,但需要循环。如何对数组和/或对象执行此操作
谢谢 将是迭代多维javascript数组的一种方便方法:
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);
})
});
这将产生
[0,0] = 1
[0,1] = 2
[0,2] = 3
[1,0] = 42
[1,1] = 24
[2,0] = 8
[2,1] = 9
[2,2] = 10
要在对象上迭代,请在obj构造中使用forkey,它将循环所有可枚举属性
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
您创建了一个对象而不是数组。要创建阵列,您应该:
var lang_arr_helper = new Array();
或
就像你第一次那样
使用[]时,它会创建一个对象,该对象没有要使用的.length属性。这就是为什么for不会遍历它。如果需要数组,请创建数组,而不是对象。请在左侧正确缩进您的代码!
var lang_arr_helper = {};