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

JavaScript实现:从30英里范围内的客户城市结果中筛选距离最近的城市并输出指定结果

找出范围内最近的客户城市

没问题,我帮你调整代码来实现只返回距离最近的那个城市。核心思路是在循环过程中始终跟踪当前找到的最近城市,每次遇到符合条件的城市时,对比它和当前记录的最近城市的距离,更新更近的那个,最后再输出结果。

修改后的代码实现

// 初始化变量,用来保存当前最近的城市信息
let closestCity = null;

for (let i = 0; i < origins.length; i++) {
  const results = response.rows[i].elements;
  for (let j = 0; j < results.length; j++) {
    const distance = results[j].distance.value;
    // 仅处理30英里(48280米)范围内的城市
    if (distance < 48280) {
      const currentCity = {
        cityName: origins[i],
        cityDistance: distance
      };
      
      // 如果是第一个符合条件的城市,或者当前城市距离更近,就更新最近城市记录
      if (!closestCity || currentCity.cityDistance < closestCity.cityDistance) {
        closestCity = currentCity;
      }
    }
  }
}

// 循环结束后,输出指定格式的结果
if (closestCity) {
  console.log(`${closestCity.cityName}城市是最近的(${closestCity.cityDistance}米)`);
} else {
  console.log("30英里范围内没有找到客户城市");
}

关键调整点说明

  • 初始化跟踪变量:在循环外定义closestCity,初始值为null,用来存储当前找到的最近城市对象。
  • 距离对比逻辑:每次找到符合条件的城市时,检查closestCity是否为空(即还没找到任何符合条件的城市),或者当前城市的距离比closestCity的距离更小,如果是,就更新closestCity。
  • 作用域优化:把原来的var换成let/const,避免变量提升导致的潜在问题,让代码更安全。
  • 结果输出:循环结束后统一输出结果,而不是在循环里逐个打印,确保只输出最近的那个城市。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 23:07:49