在一组对象上的迭代

问题描述:

我看到这些问题已经有一些了,但没有一个能真正解决这个问题,所以我再次提出这个问题。在一组对象上的迭代

这里是我从API得到一些样本数据:

{ 
    "Document": { 
    "Placemark": [ 
     { 
     "name": " V5-MJW", 
     "address": "Aviation Road, Windhoek, Namibia", 
     "description": [], 
     "TimeStamp": { 
      "when": "2016-05-21T06:12:00-04:00" 
     }, 
     "styleUrl": "#asset7541", 
     "Point": { 
      "coordinates": "17.0829055,-22.598271,743" 
     } 
     }, 
     { 
     "name": "GSatMicro80149", 
     "address": "Unnamed Road, Lesotho", 
     "description": [], 
     "TimeStamp": { 
      "when": "2016-05-11T04:52:00-04:00" 
     }, 
     "styleUrl": "#asset7543", 
     "Point": { 
      "coordinates": "27.5594894,-29.456703,1659" 
     } 
     } 
    ] 
    } 
} 

这是我所创建数组当前代码:

var flightPlanCoordinates = []; 

//data being the returned values from the API. 
$.each(data.Document.Placemark, function() { 

    var location = this.Point.coordinates.split(','); 
    var loc = {lat: parseFloat(location[1]), lng: parseFloat(location[0])}; 

    flightPlanCoordinates[this.name] == null ? flightPlanCoordinates[this.name] = [] : flightPlanCoordinates[this.name].push(loc); 
}); 

我得到了很多地标与同名称,我想用不同的名称将每个地标分成不同的数组。

这一点,直到我尝试itterate在flightPlanCoordinates一切工作正常,我试过如下:

$.each(flightPlanCoordinates, function(index) { 

} 

但是,这并不工作,如果我登录的flightPlanCoordinates的长度,它导致0,但在Firefox开发工具我可以在flightPlanCoordinates中看到正确的值。

我该怎么做呢?有没有比我在这里做的更好的方法?

+0

需要你的完整应用程序示例 –

请更改

var flightPlanCoordinates = []; 

​​

它应该是一个对象,因为你喜欢flightPlanCoordinates[this.name],其中this.name是一个字符串,而不是一个索引属性设置。

+1

这样一个简单的错误,谢谢你的工作。 – Riaan