2014-11-22 2 views
1

У меня есть этот тип данных в объекте в моем проекте.Создайте массив из данных объекта

{ 
    "name": "Travel", 
    "map": [ 
     { 
      "name": "Montreal", 
      "lat": "45.498649", 
      "lng": "-73.492729" 
     }, 
     { 
      "name": "Brossard", 
      "lat": "45.466667", 
      "lng": "-73.450000" 
     } 
    ] 
} 

Как создать такой тип структурного кода, чтобы показать свою карту Google?

var locations = [ 
    { 
    name: "Montreal", 
    latlng: new google.maps.LatLng(45.498649, -73.492729) 
    }, 
    { 
    name: "Brossard", 
    latlng: new google.maps.LatLng(45.466667, -73.450000) 
    } 
]; 

Большое спасибо.

ответ

3

Это более простой, если вы используете 'Foreach':

json.map.forEach(function(val){ 
    locations.push({ 
     name: val.name, 
     latlng: new google.maps.LatLng(val.lat, val.lng) 
    }); 
}); 
+0

Он не сохраняет мою первоначальную желаемую структуру с помощью 'новой части google.maps.LatLng'. – popol

+0

Вот что мне нужно! БЛАГОДАРЯ! – popol

2

Вы были близки:

for (i = 0; i < dmap.length; i++) { 
    locations.push({name: dmap[i].name, lat: dmap[i].lat,lng:dmap[i].lng}); 
} 

Другой способ делает это с Array.map:

dmap.map(function(item){ 
    return {name: item.name, lat: item.lat, lng:item.lng}; 
}); 

JSFIDDLE Example.

Поскольку Вы Editted это соответствующий код:

for (i = 0; i < dmap.length; i++) { 
    locations.push({name: val.name, 
     latlng: new google.maps.LatLng(val.lat, val.lng) 
    }); 
} 

Или

dmap.map(function(item){ 
    return {name: val.name, 
     latlng: new google.maps.LatLng(val.lat, val.lng) 
    }; 
}); 
+0

Хорошо, но как может Я включаю 'новую часть google.maps.LatLng'? – popol

+0

это внешний класс, который, вероятно, поставляется с добавлением js-файла google maps. –

+0

Нет, мне действительно нужна эта часть, если нет, это не сработает. – popol

Смежные вопросы