В настоящее время я отображаю данные 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?