我正试图将我的头脑集中在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);
对象{1:Array[10],2:Array[10]:3:Array[10]:4:Array[0],5:Array[10][6],7:Array[10]]}
console.log(o[7]);
阵列[]
console.log(o[7][8]);
未定义
console.log(o[7][8][3]);
TypeError:o[7][8]是未定义的
为什么o[v]=[]可以,但是o[v][c]=[]在我的for(;;)循环中不是?
for(var c; c < 10; c++){
是你的问题。您不初始化c
,所以它是undefined
或更高版本的NaN
,这些名称用作将数组添加到o[v]
上的属性名称。改为使用:
for(var c = 0; c < 10; c++){