我试图围绕javascript对象和数组。我尝试填写和访问对象如下:
obj_keys = [1,2,3,4,5,6,7];
o = {};
$.each(obj_keys, function(k, v){
o[v] = [];
for(var c; c < 10; c++){
o[v][c] = [];
o[v][c].push([11,12,13,14]);
}
});
console.log(o);
Object {1:Array [10],2:Array [10],3:Array [10],4:Array [10],5:Array [10],6:Array [10],7:Array [10]}
console.log(o[7]);
数组[]
console.log(o[7][8]);
未定义
console.log(o[7][8][3]);
TypeError:o [7] [8]未定义
为什么 o [v] = []; 没关系,但我的for(;;)循环中的 o [v] [c] = []; 是不?
答案 0 :(得分:1)
for(var c; c < 10; c++){
是你的问题。您没有初始化c
,因此它是undefined
或更晚NaN
,并且这些用作属性名称,用于将数组添加到o[v]
。改为使用:
for(var c = 0; c < 10; c++){