为什么我只能从位置数组中获得一个标记?

时间:2019-10-21 12:20:28

标签: javascript arrays google-maps-api-3

我知道问题所在,但找不到解决方法。

我想在location数组中获取所有标记。

这是我的代码:

map = new google.maps.Map(document.getElementById('map'), mapOptions);

var locations = new Array();
var lati = "";
var longi = "";
var cityfrom = "";

posts.forEach((item, index) => {
  lati = item.acf.maps.lat;
  longi = item.acf.maps.lng;
  cityfrom = item.title.rendered;
});
locations = [
  {
    lat: lati,
    lng: longi,
    city: cityfrom
  },
];

CodePen

1 个答案:

答案 0 :(得分:1)

您只将latilongicityfrom的最后一个值分配给数组中的单个项目,更简单的选择是使用Array.map()创建数组:

map = new google.maps.Map(document.getElementById('map'), mapOptions);

const locations = posts.map((item, index) => ({
  lati: item.acf.maps.lat,
  longi: item.acf.maps.lng,
  cityfrom: item.title.rendered,
}));