Я работаю в проекте маршрутов в Vue2. Я не буду объяснять детали, чтобы сделать этот вопрос как можно более простым.
Я использую v-for
для перебора массива.
Каждый повторяющийся объект необходимо добавить в массив, который я собираюсь отправить другому компоненту в моем шаблоне.
Это сложный JSON. Я на листовой карте.
Мне нужно объединить координаты каждой точки с полилинией. Компонент <l-polyline>
ожидает массив координат (каждая координата представляет собой массив из 2 значений).
Итак, я хочу поместить каждый object.coordinate
в массив, пока я перебираю первый список. Затем этот массив будет передан в качестве параметра компоненту ломаной линии в шаблоне. Как мне это сделать?
<div :key="i" v-for="(route, i) in jsonResult.routesList">
<div :key="j" v-for="(stop, j) in route.stopsList">
<l-marker :lat-lng="latLng(stop.lat, stop.long)" />
// the problem is here because I'm only getting one object (stop) and I need the whole list of stops to get their coordinates
<l-polyline :lat-lngs="latLng(stop.lat, stop.long)"></l-polyline>
</div>
</div>
Мой JSON выглядит примерно так:
Объект <l-polyline>
ожидает массив, подобный этому, для рисования линий:
[
[20.567934, -103.366844],
[19.54006, -99.1879349],
[25.54193, -100.947906],
[25.7970467, -100.59623]
]
Список маршрутов (jsonResult.routesList
в коде)
"routesList": [
{
"stopsList": [
{
"id": 1,
"seq": 1,
"start": "2019-09-10T09:32:23",
"end": "2019-09-10T10:17:23",
"lat": 20.567934,
"long": -103.366844,
},
{
"id": 2,
"seq": 2,
"start": "2019-09-10T09:32:23",
"end": "2019-09-10T10:17:23",
"lat": 20.587934,
"long": -104.386844,
}
],
},
//another route
{
"stopsList": [
{
"id": 1,
"seq": 1,
"start": "2019-09-10T09:32:23",
"end": "2019-09-10T10:17:23",
"lat": 20.567934,
"long": -103.366844,
},
{
"id": 2,
"seq": 2,
"start": "2019-09-10T09:32:23",
"end": "2019-09-10T10:17:23",
"lat": 20.587934,
"long": -104.386844,
}
],
},