用固定长度的多维数组填充Javascript对象

时间:2015-06-21 13:32:24

标签: javascript arrays object multidimensional-array fill

我试图围绕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] = []; 是不?

1 个答案:

答案 0 :(得分:1)

for(var c; c < 10; c++){

是你的问题。您没有初始化c,因此它是undefined或更晚NaN,并且这些用作属性名称,用于将数组添加到o[v]。改为使用:

for(var c = 0; c < 10; c++){