我一直在搜索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阵列是否都有值,是的,他们有值,所以如果有人能帮助我,它会对我有很大帮助。
提前谢谢!
答案 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
}