Javascript can';推入2d数组后是否无法访问对象元素?

Javascript can';推入2d数组后是否无法访问对象元素?,javascript,arrays,json,google-maps,Javascript,Arrays,Json,Google Maps,这是来自Ajax调用的Json数据 { "VehicleID": 1, "Tracks": [{ "TrackID": 1, "trackPoints": [{ "lat": 36.25514030456543, "lng": 33.501180542295344 }, { "lat": 36.255140304562, "lng": 3

这是来自Ajax调用的Json数据

{
    "VehicleID": 1,
    "Tracks": [{
        "TrackID": 1,
        "trackPoints": [{
            "lat": 36.25514030456543,
            "lng": 33.501180542295344
        }, {
            "lat": 36.255140304562,
            "lng": 33.5011805422952
        }, {
            "lat": 36.255140304561,
            "lng": 33.5011805422951
        }]
    }, {
        "TrackID": 1,
        "trackPoints": [{
            "lat": 31.25514030456543,
            "lng": 31.501180542295344
        }, {
            "lat": 31.255140304562,
            "lng": 31.5011805422952
        }, {
            "lat": 31.255140304561,
            "lng": 31.5011805422951
        }]
    }]
}
使用谷歌地图 两个for循环,用于迭代轨迹和每条轨迹中的点, 我正在将我所做的大部分工作打印到控制台中

for (var i = 0; i < numtracks; i++) {
     var numPoints = result.Tracks[i].trackPoints.length;
     arr[i] = new Array(numPoints); //creating 2d array for points
     console.log("*********Array number " + i + " Got created" + "and its lenght is " + arr[i].length + "   *******************");
     console.log("Lenght of track #" + i + " Points => " + numPoints);
     console.log("array lenghth for Points track #" + i + " => " + arr[i].length);
将数据推送到arr[i]后

arr[i].push(p);
//when acessing arr[i][j].lat();is not recgnising it
console.log("track #" + i + " , point #" + j + "pushed into array x= " + arr[i][j].lat() + " ,y=" + arr[i][j]);
这是控制台的输出

array lenghth for tracks => 2 trackss:96
Tracks lenght : 2 trackss:97
*********Array number 0 Got createdand its lenght is 3   ******************* trackss:110
Lenght of track #0 Points => 3 trackss:111
array lenghth for Points track #0 => 3 trackss:112
x= 36.25514030456543 for #0  Point trackss:116
y= 33.501180542295344  for #0  Point trackss:117
p befor push lat for the 36.25514030456543 trackss:119
p befor push lng for the 33.50118054229529 trackss:120
Uncaught TypeError: Cannot read property 'lat' of undefined 

尝试如下初始化
arr

arr[i]=[]

然后添加
p
对象,如下所示:


arr[i][j]=p

使用
var arr=new array(N)创建数组时
使用
N
未定义元素创建数组。因此,假设
N=3
您的数组看起来像
[未定义,未定义,未定义]
。推到该数组将附加新值,因此
arr.push(“Lorem”)
将生成一个数组,看起来像
[undefined,undefined,undefined,“Lorem”]
并且访问元素
arr[0]
将返回
undefined
,而不是
的“Lorem”
arr[i].push(p);
//when acessing arr[i][j].lat();is not recgnising it
console.log("track #" + i + " , point #" + j + "pushed into array x= " + arr[i][j].lat() + " ,y=" + arr[i][j]);
array lenghth for tracks => 2 trackss:96
Tracks lenght : 2 trackss:97
*********Array number 0 Got createdand its lenght is 3   ******************* trackss:110
Lenght of track #0 Points => 3 trackss:111
array lenghth for Points track #0 => 3 trackss:112
x= 36.25514030456543 for #0  Point trackss:116
y= 33.501180542295344  for #0  Point trackss:117
p befor push lat for the 36.25514030456543 trackss:119
p befor push lng for the 33.50118054229529 trackss:120
Uncaught TypeError: Cannot read property 'lat' of undefined