Javascript 迭代响应数据以创建google地图对象

Javascript 迭代响应数据以创建google地图对象,javascript,jquery,arrays,json,google-maps,Javascript,Jquery,Arrays,Json,Google Maps,我有这样的数据: "meta":{"About thisdata"}, "objects": [{"beat": "1614", "block": "081XX W HIGGINS RD", "case_number": "JA100466", "classification": "/api/1.0-beta3/crimeclassification/83/", "community_area": "/api/1.0-beta3/communityarea/10/", "community_n

我有这样的数据:

 "meta":{"About thisdata"}, "objects": [{"beat": "1614", "block": "081XX W HIGGINS RD", "case_number": "JA100466", "classification": "/api/1.0-beta3/crimeclassification/83/", "community_area": "/api/1.0-beta3/communityarea/10/", "community_name": "Norwood Park", "community_number": 10, "community_slug": "norwood-park", "crime_date": "2016-12-30T18:00:00", "description": "$500 AND UNDER", "domestic": false, "fbi_code": "06", "id": "10801504", "iucr": "0820", "latitude": 41.985421498, "location_description": "STREET", "longitude": -87.829756604, "primary_type": "THEFT", "ward": 41, "year": 2016},
function getPoints() {
        return [
          new google.maps.LatLng(37.782551, -122.445368),
          new google.maps.LatLng(37.782745, -122.444586),
          new google.maps.LatLng(37.782842, -122.443688)

         ]
}
var makeMarkers = function () {
  var result = [];
  var lat, lng = [];
  resp.objects.forEach(function(objects) { 
  lat.objects.latitude;
  lng = objects.longitude;
  return [new google.maps.LatLng(lat, lng)]
})
}
“对象”下总共有500个对象

我正在尝试创建其中的500个:
新的google.maps.LatLng(37.782551,-122.445368)

要放入这样的数组:

 "meta":{"About thisdata"}, "objects": [{"beat": "1614", "block": "081XX W HIGGINS RD", "case_number": "JA100466", "classification": "/api/1.0-beta3/crimeclassification/83/", "community_area": "/api/1.0-beta3/communityarea/10/", "community_name": "Norwood Park", "community_number": 10, "community_slug": "norwood-park", "crime_date": "2016-12-30T18:00:00", "description": "$500 AND UNDER", "domestic": false, "fbi_code": "06", "id": "10801504", "iucr": "0820", "latitude": 41.985421498, "location_description": "STREET", "longitude": -87.829756604, "primary_type": "THEFT", "ward": 41, "year": 2016},
function getPoints() {
        return [
          new google.maps.LatLng(37.782551, -122.445368),
          new google.maps.LatLng(37.782745, -122.444586),
          new google.maps.LatLng(37.782842, -122.443688)

         ]
}
var makeMarkers = function () {
  var result = [];
  var lat, lng = [];
  resp.objects.forEach(function(objects) { 
  lat.objects.latitude;
  lng = objects.longitude;
  return [new google.maps.LatLng(lat, lng)]
})
}
在此返回:

function initMap () {
  map = new google.maps.Map(document.getElementById("map"), {
    center: { lat: 41.881, lng: -87.629 },
    zoom: 12,
    mapTypeId: 'satellite'
  });

  heatmap = new google.maps.visualization.HeatmapLayer({
    data: makeMarkers(), <-- Here
    map: map
  });
}
但是它不是返回一个新对象数组,而是返回500个新数组和一个google对象,因为它在forEach中。我不知道怎样才能得到我想要的。我在相当多的范围和数据迭代中挣扎


谢谢大家!

我假设
resp
对象就是您文章顶部的对象。首先,您需要在数组上使用
map
,以实际获取一个数组

地图

Map的工作原理与forEach类似,因为它作用于数组中的每个元素。不同之处在于,在
map
的回调中,您返回一个更新的元素

例:

上面的函数返回如下数组:
[2,4,6,8]
。 注意回调方法中的返回

为了你的案子

您希望从
resp
map
获取
对象数组,并将这些元素中的每一个元素映射到Google Maps对象(即
Google.Maps.LatLng(lat,lng)

如果我正确地理解了您正在尝试做的事情,那么下面的操作应该会起作用。我建议大家多看看
map
(还有
filter
forEach
reduce
foldr
在某些语言中)的简单例子


嗯,我不确定我是否解释得足够好。我会更简洁。我正试图从500个对象中提取所有的Lat和Lng,并创建一个包含500个新google.maps.Latling(纬度、经度)
实例的数组,就像谷歌在这里的文档-->在这种情况下,上面的应该可以做到。对于
对象
数组的每个元素,将拉出lat/lng并创建一个新的Google Maps对象。它们都被映射到一个数组中并返回。Nvm我没有看到你们在那个里做了什么。你们可以阅读更多关于映射的内容。祝你好运