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

如何按District键名的字母顺序对嵌套对象进行升降序排序

核心实现原理

ES6 及更高版本的 JavaScript 中,普通对象会保留字符串类型键的插入顺序,因此我们可以先提取所有 District 名称键,完成排序后再遍历重组为新对象即可实现需求。

升序排序实现

var data = {
  "DistrictC": {"population": 105597},
  "DistrictB": {"population": 36842},
  "DistrictA": {"population": 238142}
};

const sortedAsc = {};
// 提取键后默认按字母升序排序
Object.keys(data).sort().forEach(key => {
  sortedAsc[key] = data[key];
});

// 输出结果和预期一致
console.log(sortedAsc);

降序排序实现

const sortedDesc = {};
// 用localeCompare方法实现字母降序,比直接比较更稳妥,支持包含特殊字符的场景
Object.keys(data).sort((a, b) => b.localeCompare(a)).forEach(key => {
  sortedDesc[key] = data[key];
});

console.log(sortedDesc);

低版本环境兼容方案

如果需要兼容不支持对象键顺序的 ES5 及更低版本环境,可以把排序结果转为数组存储:

// 升序数组结果
const ascArray = Object.keys(data).sort().map(key => ({[key]: data[key]}));
// 降序数组结果
const descArray = Object.keys(data).sort((a,b) => b.localeCompare(a)).map(key => ({[key]: data[key]}));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:54:06