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

如何在JavaScript中按字母数字键unitId对JSON对象数组排序

按unitId属性排序JSON对象数组

要实现目标排序,核心是提取unitId中的数字部分进行数值比较,避免直接字符串排序导致的unit11排在unit2之后的问题。

实现代码

var array = [
{ id: 10, unitId: 'unit17' }, 
{ id: 11, unitId: 'unit19' },
{ id: 13, unitId: 'unit27' }, 
{ id: 12, unitId: 'unit2' }, 
{ id: 13, unitId: 'unit11' },
{ id: 14, unitId: 'unit1'}
];

// 执行排序
array.sort((a, b) => {
  // 提取unitId中的数字并转为整数
  const numA = parseInt(a.unitId.slice(4), 10);
  const numB = parseInt(b.unitId.slice(4), 10);
  return numA - numB;
});

排序后结果

var array = [
{ id: 14, unitId: 'unit1' }, 
{ id: 12, unitId: 'unit2' }, 
{ id: 13, unitId: 'unit11' }, 
{ id: 10, unitId: 'unit17' },
{ id: 11, unitId: 'unit19'},
{ id: 13, unitId: 'unit27' }
];

补充说明

  • 用slice(4)可以高效去除固定长度的unit前缀,也可以用replace('unit', '')实现相同效果
  • 比较函数返回numA - numB实现升序排序,若需要降序,改为numB - numA即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:27:24