Как поместить sh элементы объекта из GraphQL во вложенный массив в javascript объекте? - PullRequest
0 голосов
/ 09 марта 2020

В настоящее время я отображаю данные GraphQL следующим образом:

  const plotDataArray = data.allWordpressWpPlots.edges.map(plot => (    

    {
      geometry: {
        type: plot.node.properties.geotype,
        coordinates: [
          [
            plot.node.coordinates[0].coord.split(",").reverse(),
            plot.node.coordinates[1].coord.split(",").reverse(),
            plot.node.coordinates[2].coord.split(",").reverse(),
            plot.node.coordinates[3].coord.split(",").reverse(),
            plot.node.coordinates[4].coord.split(",").reverse()
          ]
        ]
      }
    }
  )) 

Используемый мной запрос GraphQL выглядит следующим образом:

query {
  allWordpressWpPlots {
    edges {
      node {
        coordinates {
          coord
        }
      }
    }
  }
}

.. и вывод GraphiQL выглядит следующим образом :

{
  "data": {
    "allWordpressWpPlots": {
      "edges": [
        {
          "node": {
            "coordinates": [
              {
                "coord": "56.064655444812,9.6949704566207"
              },
              {
                "coord": "56.064575958599,9.6994982706574"
              },
              {
                "coord": "56.06046088577,9.6994719476694 "
              },
              {
                "coord": "56.060440367157,9.6951515896261"
              },
              {
                "coord": "56.064655444812,9.6949704566207"
              }
            ]
          }
        }
      ]
    }
  }
}

Функция map действительно возвращает объект в правильном формате, но моя проблема в том, что узел «координат» из GrapQL имеет разную длину. Я хочу провести l oop через узел, используя foreach-l oop в зависимости от длины массива, но я получаю синтаксическую ошибку при попытке javascript в функции карты.

Как построить массив "координат" с количеством элементов X из GraphQL?

1 Ответ

1 голос
/ 09 марта 2020

Вы можете вкладывать map звонки. Не совсем уверен, почему coordinates является массивом внутри другого массива, но сохраняет это как:

const plotDataArray = data.allWordpressWpPlots.edges.map(plot => ({
  geometry: {
    type: plot.node.properties.geotype,
    coordinates: [
      plot.node.coordinates.map(coordinate => {
        return coordinate.coord.split(",").reverse()
      }),
    ]
  },
}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...