2016-08-03 126 views
-1

我真的不明白javascript對象,所以我正在尋找一些幫助。Javascript從數組創建對象

我玩弄於谷歌地圖繪製線條,並具有下列對象:

var flightPlanCoordinates = [ 
    {lat: 53.644578570762484, lng: -2.7243996085112427}, 
    {lat: 53.6444989, lng: -2.7243514999999996}, 
    {lat: 53.6444989, lng: -2.7243514999999996}, 
    {lat: 53.644487771144469, lng: -2.7243445563265229}, 
    {lat: 53.644059369772329, lng: -2.7240772650391825}, 
    {lat: 53.644055277360415, lng: -2.7240747116998691} 
]; 

這工作得很好。

但是我想要做的是動態地創建一個這樣的對象。

我有一個數組中的緯度和經度列表,我如何創建一個像上面那樣的對象?

var newFlightPath = []; 

for (i = 0; i < myLatLngs.length; ++i) { 

    //add the lat and lng to newFlightPath somehow? 

} 
+2

你的'myLatLngs'數組是怎麼樣的? – Xufox

+0

'newFlightPath.push(...);' – zerkms

+2

您上面的對象**是**陣列中的緯度和經度列表! – Quentin

回答

0

我假設數組「myLatLngs」的結構是這樣的:[0 => lat,1 => lng]。在這種情況下,你可以推對象,以你的「newFlightPath」數組是這樣的:

for (i = 0; i < myLatLngs.length; ++i) { 
    var obj = {lat: myLatLngs[i][0], lng: myLatLngs[i][1]}; 
    newFlightPath.push(obj); 
} 

或更簡單:

for (i = 0; i < myLatLngs.length; ++i) { 
    newFlightPath.push({lat: myLatLngs[i][0], lng: myLatLngs[i][1]}); 
} 
0

這是JSON對象的數組。你可以只在myLatLngs環和newFlightPath

推動其價值,因爲你沒有提供有關的任何信息,所以希望這myLatLngs是latitude & longitude

與關鍵JSON對象的數組還可以使用數組forEach

var newFlightPath = []; 
myLatLngs.forEach(function(item){ 
    newFlightPath.push({ 
    lat:item.latitude, 
    lng:item.longitude 
}) 
})