这是我从 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);
});
我有很多同名的地标,我想将每个具有不同名称的地标拆分到不同的数组中。
这一切都很好,直到我尝试遍历 flightPlanCoordinates
,我尝试了以下操作:
$.each(flightPlanCoordinates, function(index) {
}
但这不起作用,如果我记录 flightPlanCoordinates
的长度,结果为 0,但在 Firefox Dev 工具中我可以在 flightPlanCoordinates
中看到正确的值.
我该怎么做呢?有没有比我在这里做的更好的方法?
最佳答案
请更改
var flightPlanCoordinates = [];
到
var flightPlanCoordinates = {};
它应该是一个对象,因为您使用 flightPlanCoordinates[this.name]
等属性设置它,其中 this.name
是一个字符串,而不是索引。
关于javascript - 迭代对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38263259/