You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据公交线路在数组中查找下一个公交站点?

解决方案

假设你有一个包含所有公交站点的数组(比如命名为allStops),要根据已知站点找到同线路同方向的下一站,按以下步骤操作:

1. 提取当前站点的关键信息

从已知站点的route数组中取出线路号、行驶方向,以及当前站的序号(注意将字符串转成数字):

// 假设已知站点为currentStop
const currentRouteInfo = currentStop.route[0]; // 取第一条线路(若一个站点属于多条线路,需额外判断匹配逻辑)
const targetRouteNum = currentRouteInfo._num;
const targetDirection = currentRouteInfo._direction;
const currentStopNum = parseInt(currentRouteInfo._stopNum, 10);
const nextStopNum = currentStopNum + 1;

2. 查找下一个站点

遍历所有站点数组,找到匹配线路号、方向,且站号等于nextStopNum的站点:

const nextStop = allStops.find(stop => {
  // 检查站点是否属于目标线路和方向
  const isTargetRoute = stop.route.some(route => 
    route._num === targetRouteNum && route._direction === targetDirection
  );
  // 检查站点序号是否为目标下一站
  const isNextStop = stop.route.some(route => 
    parseInt(route._stopNum, 10) === nextStopNum
  );
  return isTargetRoute && isNextStop;
});

// 结果处理
if (nextStop) {
  console.log('下一站:', nextStop._name);
} else {
  console.log('当前为终点站,无下一站');
}

关键说明

  • 每个站点的route数组可能包含多条线路信息,因此要用some判断该站点是否属于目标线路和方向
  • _stopNum是字符串类型,必须转成数字后再做数值比较
  • 若当前站点是线路首站(_stopNum: "1"),下一站就是_stopNum: "2"的站点;若当前是终点站,find会返回undefined,需做无结果处理

内容的提问来源于stack exchange,提问作者RoLedXD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 02:35:22