json 如何按路线找到阵列中的公交站点?

gmxoilav  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(114)

我有个问题。
我们有一条经过多个公交站的路线。
整条路上我们只有一个车站。
现在如何找到这条路线的下一站呢?
“停止编号”:“1”表示停靠点是路径中的第一个停靠点
停止示例:

{
  "route": [
    {
      "_transport": "regionalbus",
      "_num": "146",
      "_direction": "b-a",
      "_directionName": "Nõva - Harju-Risti - Padise - Ämari - Keila  - Harku - Tallinn",
      "_stopNum": "1"
    }
  ],
  "_id": "5701054-1",
  "_id0": "134773",
  "_name": "Laimi",
  "_lat": "59.22155",
  "_lon": "23.67992"
}

I've made a scheme,这有助于了解问题。
以及数组here的一部分的屏幕截图
我试图通过.find函数查找,但没有弄清楚如何在对象数组中的对象内搜索对象数组中的对象。我搞砸了,抱歉

nszi6y05

nszi6y051#

// first collect all stops from your array
let stops = routeData.map(a => a.route).flat()

// let's create a function that finds the next stop after a given stop
function getNextStop(currentStop) {
  // find the stop that has the same route number (_num) and the stop number increased by 1
  return stops.find(element => element._num === currentStop._num 
         && parseInt(currentStop._stopNum) + 1 == element._stopNum);
}

只需使用getNextStop()函数,并将currentStop提供给它,您可以根据需要修改find()中的搜索条件,可能还需要按方向过滤

相关问题