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

如何从JSON对象中按属性值提取前N个最大项并排序

实现方案(以JavaScript为例)

通用逻辑不管用什么编程语言都可以复用:

  • 提取原对象的所有键值对,转为可排序的列表结构
  • 按属性值做降序排序,值相同的项相对顺序不做强制要求,符合你的示例输出规则
  • 截取排序后列表的前5项
  • 将筛选后的列表重新组装为对象结构

可直接运行的代码示例

function getTop5MaxItems(originObj) {
  // 转为[键, 值]二维数组
  const keyValueList = Object.entries(originObj);
  // 按值降序排序
  keyValueList.sort((a, b) => b[1] - a[1]);
  // 截取前5项
  const top5List = keyValueList.slice(0, 5);
  // 转回对象
  return Object.fromEntries(top5List);
}

// 测试
const inputObj = {A : 1, B : 5, C : 1, D : 3, E: 4, F: 4, G: 2};
console.log(getTop5MaxItems(inputObj));
// 输出结果:{ B: 5, E: 4, F: 4, D: 3, G: 2 }

低版本环境兼容写法

如果你的运行环境不支持ES2019新增的Object.fromEntries方法,可以用遍历的方式组装结果:

function getTop5MaxItems(originObj) {
  const keyValueList = Object.entries(originObj);
  keyValueList.sort((a, b) => b[1] - a[1]);
  const top5List = keyValueList.slice(0, 5);
  // 手动组装对象
  const result = {};
  top5List.forEach(item => {
    result[item[0]] = item[1];
  });
  return result;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:18:02