Reactjs创建多个对象数组声明

时间:2017-11-06 03:31:35

标签: javascript html arrays reactjs object

当我尝试从react-google-maps获取多边形的坐标时,下面是我的编码:

const coords = { lat:{}, lng:{} }

 getCoordinates: () => (polygon) => {
  const paths = polygon.getPath()
  const coor = paths.b

  {coor.map(function(coor, i){
    coords.lat= coor.lat()
    coords.lng= coor.lng()
  })}
  return console.log(coords)
}

我正在尝试获取“coords”的对象数组,如下所示:

coords = [
  { lat: 3.1323583333745533, lng: 101.62676453590393 },
  { lat: 3.1318226928949433, lng: 101.62672162055969 },
  { lat: 3.131753059612469, lng: 101.6274243593216 }
]

但是使用代码会给我这个:

coords = { 
  lat: 3.131753059612469, 
  lng: 101.6274243593216 
}

这是三个中的最后一个坐标。

如何在“coords”下获得所有三个坐标?

2 个答案:

答案 0 :(得分:2)

你必须推送到数组而不是对象,希望它有所帮助!

let coords = [];

getCoordinates: () => (polygon) => {
    const paths = polygon.getPath();
    const coor  = paths.b;

    coor.forEach((c) => {
        coords.push({
            lat: c.lat(),
            lng: c.lng()
        });
    });

    return console.log(coords);
}

答案 1 :(得分:2)

此代码真的混淆了。你似乎在寻找

function getCoordinates(polygon) {
  const paths = polygon.getPath()
  const coords = paths.b.map(coor => ({
    lat: coor.lat(),
    lng: coor.lng()
  }));
  return coords;
}

console.log(getCoordinates(…));