在一组对象上的迭代
问题描述:
我看到这些问题已经有一些了,但没有一个能真正解决这个问题,所以我再次提出这个问题。在一组对象上的迭代
这里是我从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
中看到正确的值。
我该怎么做呢?有没有比我在这里做的更好的方法?
答
请更改
var flightPlanCoordinates = [];
到
它应该是一个对象,因为你喜欢flightPlanCoordinates[this.name]
,其中this.name
是一个字符串,而不是一个索引属性设置。
+1
这样一个简单的错误,谢谢你的工作。 – Riaan
需要你的完整应用程序示例 –