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

如何按键对JavaScript对象排序?附示例代码与预期结果

按键名中的数字排序ADF_前缀的JavaScript对象

要将键名格式为ADF_+数字的无序JavaScript对象,按照键中数字从小到大排序,可通过提取键值数字、数值排序、重构对象三步实现:

原始数据

const data = {"ADF_3":"","ADF_2":"","ADF_1":"","ADF_7":"","ADF_17":"","ADF_6":"","ADF_18":"","ADF_5":"","ADF_15":"","ADF_4":"","ADF_16":"","ADF_9":"","ADF_19":"","ADF_8":"","ADF_20":"","ADF_10":"","ADF_13":"","ADF_14":"","ADF_11":"","ADF_12":""};

排序实现代码

// 提取所有键并按数字排序
const sortedKeys = Object.keys(data).sort((keyA, keyB) => {
  // 拆分键名获取数字部分,转为整数
  const numA = parseInt(keyA.split('_')[1], 10);
  const numB = parseInt(keyB.split('_')[1], 10);
  // 数值排序(避免字符串排序导致10排在2前的问题)
  return numA - numB;
});

// 基于排序后的键重构有序对象
const sortedData = {};
sortedKeys.forEach(key => {
  sortedData[key] = data[key];
});

最终输出结果

{"ADF_1":"","ADF_2":"","ADF_3":"","ADF_4":"","ADF_5":"","ADF_6":"","ADF_7":"","ADF_8":"","ADF_9":"","ADF_10":"","ADF_11":"","ADF_12":"","ADF_13":"","ADF_14":"","ADF_15":"","ADF_16":"","ADF_17":"","ADF_18":"","ADF_19":"","ADF_20":""};

代码说明

  • Object.keys(data):获取对象所有键的数组
  • sort方法:通过split('_')[1]提取键中的数字片段,转为整数后做差值排序,确保是数值排序而非字符串排序
  • 遍历排序后的键数组,将原对象的键值对依次存入新对象,得到有序结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 18:57:05