Получить значения многомерного массива (Node.js / JavaScript) - PullRequest
0 голосов
/ 26 сентября 2018

Эй, я получил этот объект внутри polygons.js :

var polygons = [
  {
    "_id" : "12345",
    "geometry" : {
       "coordinates" : [[
           [9.123553, 48.71568],
           [ 9.119548, 48.71526 ]
       ]]
    }
  },
  {
    "_id" : "67890",
    "geometry" : {
       "coordinates" : [[
           [ 9.090445, 48.715736 ],
           [ 9.089583, 48.715687 ]
       ]]
    }
  }
]

Когда я звоню console.log(polygons[1].geometry);, я получаю только этот результат вместо чисел:

{ 
  coordinates: 
   [ [ [Array],
       [Array] 
    ] ]
}

Можете ли вы помочь мне?Спасибо в связи.

Ответы [ 4 ]

0 голосов
/ 26 сентября 2018

Если вы просто хотите напечатать координаты каждого многоугольника, вам может пригодиться что-то вроде этого:

var polygons = [{
    "_id": "12345",
    "geometry": {
      "coordinates": [
        [
          [9.123553, 48.71568],
          [9.119548, 48.71526]
        ]
      ]
    }
  },
  {
    "_id": "67890",
    "geometry": {
      "coordinates": [
        [
          [9.090445, 48.715736],
          [9.089583, 48.715687]
        ]
      ]
    }
  }
];

function printCoordinates(polygon) {

  // Iterate over the coordinate groups and print out each coordinate in the polygo
  polygon.geometry.coordinates.map(coordinateGroup => {
    coordinateGroup.map(coordinatePair => {
      console.log(`${coordinatePair[0]}, ${coordinatePair[1]}`)
    });
  });
}

printCoordinates(polygons[0]);
printCoordinates(polygons[1]);
0 голосов
/ 26 сентября 2018

Измените console.log(polygons[1].geometry); на это console.log(JSON.stringify(polygons[1].geometry, null, 4));

должно сработать.

0 голосов
/ 26 сентября 2018

Вы можете преобразовать объект в строку с помощью JSON.stringify().

В любом случае, здесь это работает в обоих случаях:

var polygons = [
  {
    "_id" : "12345",
    "geometry" : {
       "coordinates" : [[
           [9.123553, 48.71568],
           [ 9.119548, 48.71526 ]
       ]]
    }
  },
  {
    "_id" : "67890",
    "geometry" : {
       "coordinates" : [[
           [ 9.090445, 48.715736 ],
           [ 9.089583, 48.715687 ]
       ]]
    }
  }
]

console.log(polygons[1].geometry);
console.log(JSON.stringify(polygons[1].geometry));
0 голосов
/ 26 сентября 2018

Если вы хотите получить доступ к координатам:

 var firstCoords = polygons[0].geometry.coordinates[0][0]; //[9.123553, 48.71568]
 var secondCoords = polygons[0].geometry.coordinates[0][1]; //[ 9.119548, 48.71526 ]

Если вы хотите пройти через них:

 for(var i = 0; i < polygons[0].geometry.coordinates[0].length; i++){
     //do whatever you want with the coordinates
 }      
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...