如何在Javascript中修改数组的内容

How to modify content of an array in Javascript

本文关键字:数组 修改 Javascript      更新时间:2023-09-26

我正在使用Google Maps API在地图上创建一些区域。我将地理数据存储在数据库中,并通过Ajax获得它。

问题是API希望数据是一个对象,如:
var myHome = { "lat" : "44.767778" , "long" : "-93.2775" };

所以我需要在数组中放入{"lat":和"long:…

};

我怎么能那样做呢?


这是我在你的帮助下所做的。我没有出错,但地图上什么也没显示。我使用了来自API的百慕大三角角的例子作为模型:https://developers.google.com/maps/documentation/javascript/examples/polygon-autoclose
    $.get(
    "getZones.php", //Get geodata from database
    function(data) {
      locZone = data;
      var reg=new RegExp("[/]+", "g"); //Separate points of the zone
      var tableau=locZone.split(reg);
      for (var i=0; i<tableau.length; i++) {
          points = new google.maps.LatLng(tableau[i]);
          coords.push(points);//Put the coordinates in a tab
        }
      var zone = new google.maps.Polygon({
        paths: coords, //Use the tab like in the example from API
        strokeColor: '#FF0000',
        strokeOpacity: 0.8,
        strokeWeight: 3,
        fillColor: '#FF0000',
        fillOpacity: 0.35
      });
      zone.setMap(map);
    }
  );

没关系,我只是重写了循环:

for (var i=0; i<tableau.length; i++) {
      var b=tableau[i].split(","); //Separate lat & lng
      points=new google.maps.LatLng(parseFloat(b[0]), parseFloat(b[1])); //Convert data into float type
      coords.push(points); 
    }

可能最简单的方法(不需要看到任何示例代码)是将通过ajax获得的值放入一个新变量中。假设你获得的对象叫做geoData。geoData应该有两个值lat和long,或者不管你怎么称呼它们。

最简单的方法是:

var myHome = {
    "lat": geoData.lat,
    "long": geoData.long
}

您也可以直接通过google maps api创建LatLng对象:

var latlng = new google.maps.LatLng(44.767778, -93.2775);

返回处理映射所需的对象