2016-07-08 93 views
1

我看到這些問題已經有一些了,但沒有一個能真正解決這個問題,所以我再次提出這個問題。在一組對象上的迭代

這裏是我從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

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

回答

2

請更改

var flightPlanCoordinates = []; 

​​

它應該是一個對象,因爲你喜歡flightPlanCoordinates[this.name],其中this.name是一個字符串,而不是一個索引屬性設置。

+1

這樣一個簡單的錯誤,謝謝你的工作。 – Riaan