JavaScript 对象中字段按值排序

JavaScript About 1,134 words

sort

Object.entries(obj).sort()

数值型 value 排序(最常用,如数字、分数等)

变量ab表示当前对象结构的[key, value]数组和下一个[key, value]数组。

const obj = { a: 30, b: 10, c: 20 };

// 按 value 升序排列(从小到大)
const sortedAsc = Object.entries(obj).sort((a, b) => a[1] - b[1]);
console.log(sortedAsc); // [['b', 10], ['c', 20], ['a', 30]]

// 按 value 降序排列(从大到小)
const sortedDesc = Object.entries(obj).sort((a, b) => b[1] - a[1]);
console.log(sortedDesc); // [['a', 30], ['c', 20], ['b', 10]]

字符串型 value 排序(按字母 / Unicode 顺序)

const obj = { name: "ECharts", type: "chart", version: "6.0" };

// 按 value 字母升序
const sortedStr = Object.entries(obj).sort((a, b) => a[1].localeCompare(b[1]));
console.log(sortedStr); // [['type','chart'], ['name','ECharts'], ['version','6.0']]

复杂对象 value 排序

const obj = {
  article1: { pv: 1500, title: "A" },
  article2: { pv: 800, title: "B" },
  article3: { pv: 2000, title: "C" }
};

// 按 value.pv 降序
const sortedComplex = Object.entries(obj).sort((a, b) => b[1].pv - a[1].pv);
console.log(sortedComplex); // [['article3', {...}], ['article1', {...}], ['article2', {...}]]

注意

sort() 方法会原地修改原数组,如果需要保留原数组,先浅拷贝一份:[...Object.entries(obj)].sort(...)

Views: 10 · Posted: 2026-05-25

———         Thanks for Reading         ———

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓
Prev Post
Today In History
Browsing Refresh