在javascript中使用2个简单数组创建一个2d数组

时间:2014-04-10 17:40:14

标签: javascript arrays merge 2d

我一直在搜索javascript代码中的错误数小时,但我真的不明白为什么会出现这种错误。

所以我通过使用ajax获得了2个数组,我想将它们合并为2d数组,但是这个错误发生了:

  

未捕获的TypeError:无法设置未定义的属性“0”

所以这是我的代码:

var arrayCityAccident = new Array([]);

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

我已经抬头看看我的两个1d阵列是否都有值,是的,他们有值,所以如果有人能帮助我,它会对我有很大帮助。

提前谢谢!

2 个答案:

答案 0 :(得分:0)

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

var arrayCityAccident = [];

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

答案 1 :(得分:0)

好吧,只要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
}