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

如何按revenue字段对JavaScript对象数组进行降序排序?

按对象数组指定字段降序排序的解决方案

JavaScript数组的sort()方法可以直接处理多属性对象数组的排序,核心是给sort()传入自定义比较函数来定义排序规则。针对你的需求,具体实现如下:

const arr = [{name:"apple", qtySold: 30, revenue: 90}, {name:"pie", qtySold: 10, revenue: 100}, {name:"beer", qtySold: 25, revenue: 95}];

// 按revenue字段降序排序
const sortedArr = arr.sort((a, b) => b.revenue - a.revenue);

console.log(sortedArr);
// 输出结果:
// [{name:"pie", qtySold: 10, revenue: 100}, {name:"beer", qtySold: 25, revenue: 95}, {name:"apple", qtySold: 30, revenue: 90}]

关键逻辑说明:

  • sort()的比较函数接收两个参数a和b,对应数组中一对待比较的对象。
  • 返回值的正负决定排序顺序:返回正数时,b排在a前面;返回负数时,a排在b前面;返回0则保持原顺序。
  • b.revenue - a.revenue的计算逻辑刚好满足降序需求:若b的营收更高,差值为正,b优先排列;反之则a靠前。

如果需要升序排序,只需把比较逻辑改为a.revenue - b.revenue即可。另外注意,sort()会直接修改原数组,若想保留原数组,可先复制一份再排序:

// 用扩展运算符复制数组
const sortedArr = [...arr].sort((a, b) => b.revenue - a.revenue);
// 或用Array.from()复制
const sortedArr = Array.from(arr).sort((a, b) => b.revenue - a.revenue);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:35:20