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

按整数列排序未按实际数值大小排列,如何实现正确排序?

按数值而非字符串排序的解决方案

问题出在你的数据里数值是字符串类型,默认排序会按字符串的字符编码顺序比较,所以"100"会排在"2"前面。要实现按实际数值排序,只需在排序时把字符串转为数字再比较:

const data = [
  ["A","2"],
  ["B","100"],
];

// 按数值升序排序
data.sort((a, b) => {
  // 将字符串转为数字后比较
  return Number(a[1]) - Number(b[1]);
});

console.log(data); // 输出 [["A","2"], ["B","100"]]
  • 如果要降序排序,只需把Number(a[1]) - Number(b[1])改成Number(b[1]) - Number(a[1])
  • 注意:如果数组里存在非数字的字符串,建议先做合法性判断,避免出现NaN导致排序异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:21:14