【问题标题】:Fill Javascript object with fixed length multidimensional array用固定长度的多维数组填充 Javascript 对象
【发布时间】:2015-06-21 13:32:23
【问题描述】:

我正试图围绕 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: 数组[10], 2: 数组[10], 3: 数组[10], 4: 数组[10], 5: 数组[10], 6: 数组[10], 7: 数组[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] = [ ]; 是不是吗?

【问题讨论】:

    标签: javascript arrays object multidimensional-array fill


    【解决方案1】:
    for(var c; c < 10; c++){
    

    是你的问题。你没有初始化c,所以它是undefined,或者更高版本的NaN,这些被用作将你的数组添加到o[v]的属性名称。改为使用:

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

    【讨论】:

    • 额外问题:console.log(o[7][8][3]); 返回undefined,我如何访问它?
    • 没关系,应该是console.log(o[7][8][0][3]);
    猜你喜欢
    • 2011-11-27
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 2019-07-18
    • 1970-01-01
    相关资源
    最近更新 更多