javascript - 如何在javascript中循环json格式数组变量

标签 javascript json ajax google-maps

这是我的代码,用于标记我从谷歌地图数据库中获取的所有地点。

 $.ajax({
        url:"http://localhost/church_finder/index.php/MapController/search_church",
                type:'POST',
                data:{coordinates:coordinates}
                 success: receiver               
               });

这里我用从数据库获得的结果调用函数接收器。

function receiver(data, textStatus, XMLHttpRequest) {

var json = JSON.parse(data);

var features = [
            for( var i=0; i<json.length; i++) {
            var lat=json[0]["lat"];
            var lng=json[0]["lng"];
                {
                    position: new google.maps.LatLng(lat,lng),
                },
            }
            ];

     features.forEach(function(feature) {
                var marker1 = new google.maps.Marker({
                    position: feature.position,
                    map: map
                });
            });     
} 

这是我从ajax获取的结果数据

[{"lat":"10.526800731337735","lng":"76.20941162109375"}, {"lat":"10.622100079463674","lng":"76.1424207687378"},{"lat":"10.604004340704408","lng":"76.14100456237793"},{"lat":"10.608644375798574","lng":"76.13735675811768"},{"lat":"10.624419968495433","lng":"76.13675594329834"},{"lat":"10.62436724394038","lng":"76.13685250282288"},{"lat":"10.624377788852131","lng":"76.13693833351135"},{"lat":"10.615815200680679","lng":"76.1367130279541"},{"lat":"10.601726479547619","lng":"76.13688468933105"},{"lat":"10.610500370131295","lng":"76.13244295120239"},{"lat":"10.631991120088175","lng":"76.13566160202026"}]

但是当我在 var 功能中使用 forloop 时,我收到了这样的错误:“Uncaught SyntaxError: Unexpected token for”。我如何在谷歌地图中循环并标记所有这些坐标。

最佳答案

您不能将 for 关键字放入数组内,就像您在 features = [ for (...) {} ] 中所做的那样。试试这个:

function receiver(data, textStatus, XMLHttpRequest) {

  var json = JSON.parse(data);

  var features = [];
  for (var i = 0; i < json.length; i++) {
    var lat = json[i]["lat"];
    var lng = json[i]["lng"]; 
    // push object into features array
    features.push({ position: new google.maps.LatLng(lat, lng) });
  }

  features.forEach(function(feature) {
    var marker1 = new google.maps.Marker({
      position: feature.position,
      map: map
    });
  });
}

或者,为了使其更简洁,您可以使用 ES6 Object destructuringArray.map ,像这样:

var features = json.map(({lat, lng}) => ({position: new google.maps.LatLng(lat, lng)}));

关于javascript - 如何在javascript中循环json格式数组变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48567601/

相关文章:

java - Wicket CheckBoxMultipleChoicePage & AjaxFormChoiceComponentUpdatingBehavior

javascript - Java REST 调用与 Web 应用程序的前端有何关系?

php - 如何使用 json_encode 操作输出?

json - SWIFT 2 - alamofire - 解析 JSON 参数

javascript - 添加事件类并更改其他项目的CSS

ajax - 如何对 gwt-rpc 调用进行分组?

javascript - 开 Jest - 从时刻时区模拟属性和函数

javascript - 执行异步调用以从 Protractor 内的 REST 端点获取测试数据的正确方法?

javascript - 杀死 nestjs - node.js 进程丢失 redis 连接(微服务)

javascript - 如何将javascript变量值传递给django中的views.py函数?