Reactjs создать объявление массива нескольких объектов



Ниже приведен мой код, когда я пытаюсь получить координаты полигона из 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
}


Это последние координаты из трех.



Как я могу получить все три координаты под "координатами"?

563   2  

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);
}

Этот код действительно запутан. Вы, кажется, ищете

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

console.log(getCoordinates(…));

Comments

    Ничего не найдено.