2016-07-08 6 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); 
}); 

私はそれを目印の多くを得ます別の名前の各目印を別の配列に分割したいと考えています。それが0になり、

$.each(flightPlanCoordinates, function(index) { 

} 

しかし、私はflightPlanCoordinatesの長さを記録した場合、これは、動作しません、まだFirefoxで:

は私が flightPlanCoordinates上itterateしようとするまで、すべてが正常に動作しますこれは、私は次のことを試してみました開発ツール私は flightPlanCoordinatesの正しい値を見ることができます。

どうすればいいですか?私がここでやっていることよりも良い方法がありますか?

+0

あなたの完全なアプリサンプルが必要 –

答えて

2

あなたはthis.nameが文字列ではなく、インデックスであるflightPlanCoordinates[this.name]のような特性を、とそれを設定しているため、それは、オブジェクトでなければなりません

​​

var flightPlanCoordinates = []; 

を変更してください。

+1

このような単純な間違い、これはうまくいきました。 – Riaan

関連する問題