使用Javascript构建数组

时间:2017-12-13 15:10:08

标签: javascript arrays json object

我有一个Markers谷歌地图数组,看起来像这样。

markers: [{
    position: {
        lat: 37.0636782,
        lng: -8.0288746
    },
    infoText: 'Marker 1'
}],

我也有从我的CMS中提取的内容,看起来像这样。

[{
    "latitude": "37.0636782", 
    "longitude": "-8.0288746", 
    "info_snippet": "test123"
},
{
    "latitude": "37.0636789", 
    "longitude": "-8.0288745", 
    "info_snippet": "test111"
}]

我想获取第二个数组并将其输出与第一个数组相同。这可能吗?

这里要求的是我创建的循环。

this.pins = response.data.acf.map_markers;
let self = this;
this.pins.forEach(function(item) {
    self.markers.position.lat.push(item.latitude);
    self.markers.position.lng.push(item.longitude);
    self.markers.infoText.push(item.info_snippet);
})

1 个答案:

答案 0 :(得分:1)

映射原始内容并在那里创建自定义键。在你的情况下,它将是这样的:

this.pins = response.data.acf.map_markers;

this.pins.map(({latitude, longitude, info_snippet}) => ({
  position: { lat: latitude, lng: longitude },
  infoText: info_snippet
}));

const coords = [{
    "latitude": "37.0636782",
    "longitude": "-8.0288746",
    "info_snippet": "test123"
  },
  {
    "latitude": "37.0636789",
    "longitude": "-8.0288745",
    "info_snippet": "test111"
  }
];

const newCoords = coords.map(({latitude, longitude, info_snippet}) => ({
  position: { lat: latitude, lng: longitude },
  infoText: info_snippet
}));

console.log(newCoords);