【问题标题】:Make a 2d array with 2 simple array in javascript在javascript中用2个简单数组制作一个二维数组
【发布时间】:2014-04-10 17:40:13
【问题描述】:

我一直在寻找我的 javascript 代码中的错误,但我真的不明白为什么会发生此错误。

所以我有 2 个使用 ajax 获得的数组,我想将它们合并到一个 2d 数组中,但是会发生这个错误:

未捕获的类型错误:无法设置未定义的属性“0”

这是我的代码:

var arrayCityAccident = new Array([]);

for(var i = 0; i < responseAccident.length; i++)
{
arrayCityAccident [i][0] = responseCity[i]['city'];
arrayCityAccident [i][1] = responseAccident[i];
}

我查看了我的两个一维数组是否有值,是的,它们有值,所以如果有人可以帮助我,它将对我有很大帮助。

提前谢谢你!

【问题讨论】:

    标签: javascript arrays merge 2d


    【解决方案1】:

    你需要为每个索引i添加一个新数组到arrayCityAccident

    var arrayCityAccident = [];
    
    for(var i = 0; i < responseAccident.length; i++)
    {
        arrayCityAccident.push([responseCity[i]['city'], responseAccident[i]]);
    }
    

    【讨论】:

    • 我试过了,效果很好!非常感谢您的帮助!
    【解决方案2】:

    好吧,只要i 在您的循环中变得大于 0,arrayCityAccident[i] 就不再返回数组。您定义了arrayCityAccident[0],因此无法访问arrayCityAccident[i][0]

    在定义其元素之前,只需将另一个数组添加到arrayCityAccident

    var arrayCityAccident = new Array([]);
    
    for(var i = 0; i < responseAccident.length; i++)
    {
        arrayCityAccident[i] = []; // add a new array to arrayAccident
        arrayCityAccident[i][0] = responseCity[i]['city']; // now you can set those properties
        arrayCityAccident[i][1] = responseAccident[i];     // without problems
    }
    

    【讨论】:

    • 我认为您的意思是“大于 0”。然而,这更像是一个评论而不是一个答案:你解释了为什么会发生错误,但没有说明如何处理它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    相关资源
    最近更新 更多