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

JavaScript中如何按city字段对车站对象数组排序?

按city字段对车站数组分组排序

要让同一城市的车站相邻排列,直接用JavaScript数组的sort()方法就能实现,针对1000+条数据的场景也完全够用。

核心实现代码

先拷贝原数组避免修改原数据,再通过city字段完成排序:

const arr = [
  { name: "Prague - train station", value: 1041041, city: "Prague" },
  { name: "Brno - bus station", value: 104411041, city: "Brno" },
  { name: "Prague - bus station", value: 104411041, city: "Prague" },
  { name: "Brno - train station", value: 44411041, city: "Brno" }
];

// 拷贝数组后排序,避免修改原数组
const sortedArr = [...arr].sort((a, b) => a.city.localeCompare(b.city));

代码细节说明

  • [...arr]:用扩展运算符创建原数组的浅拷贝,防止排序操作影响原数据(如果不需要保留原数组,直接执行arr.sort(...)即可)
  • localeCompare():相比直接用字符串比较符(</>),它能更好地处理带特殊字符的城市名(比如含重音的欧洲城市),按语言环境规则排序,结果更精准
  • 性能:浏览器内置的sort方法采用高效排序算法(如V8引擎的Timsort),时间复杂度为O(n log n),处理1000+条数据毫无压力

排序后结果

const sortedArr = [
  { name: "Prague - train station", value: 1041041, city: "Prague" },
  { name: "Prague - bus station", value: 104411041, city: "Prague" },
  { name: "Brno - bus station", value: 104411041, city: "Brno" },
  { name: "Brno - train station", value: 44411041, city: "Brno" }
];

内容的提问来源于stack exchange,提问作者Daniel Bílek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:20:26