用javascript制作一个带有2个简单数组的2d数组

Make a 2d array with 2 simple array in javascript

本文关键字:数组 2个 简单 一个 2d javascript      更新时间:2023-09-26

我已经在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];
}

我已经查看了我的两个1d数组是否都有值,是的,它们都有值。所以如果有人能帮助我,这将对我有很大帮助。

提前谢谢!

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

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

好吧,一旦循环中的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
}