从对象数据创建一个数组

时间:2014-11-22 13:50:52

标签: javascript arrays

我的项目中的对象中有这种类型的数据。

{
    "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)
  }
];

非常感谢。

2 个答案:

答案 0 :(得分:3)

如果你使用'forEach',那就更简单了:

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

答案 1 :(得分: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

自编辑以来这是相关代码:

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)
    };
});