Массив массивов из 'server'.js, возвращенный как строка в' view'.ejs - PullRequest
0 голосов
/ 25 октября 2019

Я думаю, что ответ, конечно, прост, но я зациклен на нем: / Я хочу отправить массив массива из моего server.js в мой view.ejs, и мне нужен он в формате массива. вот мой код:

в server.js

.get('/map', async function(req, res) {
    let areaCoordinates= await getCoordinates();
    res.render('map.ejs', {token: tokenMapbox, areaCoordinates: areaCoordinates});
})

Массив массивов это areaCoordinates (скажем, это [[[1,2], [3,4]], [[5,6], [7,8]]] но длиннее и с длиной, которая может изменяться, длина массива в массиве также может измениться, только массив в массиве в массиве всегда равен 2 (xи координаты y))

в view.ejs

<script>
    /* some stuff */
    let areaCoord_1="<%= areaCoordinates[1] %>";
    let areaCoord_2= "<%= areaCoordinates[2] %>";
    /* some stuff */
</script>

моя проблема для примера areaCoord_1 = "1,2,3,4" и areaCoord_2 = "5,6,7,8 ", когда мне понадобятся [[1,2], [3,4]] и [[5,6], [7,8]]

Я тожепопробуйте в view.ejs

let areaCoord_1=[]
"<%= for (coord of areaCoordinates[1]) { %>"
areaCoord_1.push(coord);
"<%= } %>"

но тогда у меня есть синтаксическая ошибка.

у кого-нибудь есть решение?
(я думаю о преобразовании строки в массив икаждый 2 элемент создает новый массив для переделывания массива массива, но, вероятно, есть более чистое решение и меньше ресурсов)

Важным моментом является то, что мне действительно нужен массив, а не строка в outpout

1 Ответ

0 голосов
/ 28 октября 2019

Cf. комментарии Лоуренса Чероне под вопросом:
Использование:

let areaCoord_1=<%= JSON.stringify(areaCoordinates[1]) %>; 

без кавычек
также посмотрите на Передача объекта клиенту в node / express + ejs для аналогичногопроблема

...