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

如何从对象数组中提取return值最高的前5个对象并排序

提取数组中return值最高的前5个对象并排序

可以通过排序+截取的两步操作实现需求,具体代码如下:

const Top5ReturnsArray = [
    { signalInfo: { signalName: 'Signal 1'}, return: 3.0 },
    { signalInfo: { signalName: 'Signal 2'}, return: 1.4 },
    { signalInfo: { signalName: 'Signal 3'}, return: -2.6 },
    { signalInfo: { signalName: 'Signal 4'}, return: -4.5 },
    { signalInfo: { signalName: 'Signal 4'}, return: 4.0 },
    { signalInfo: { signalName: 'Signal 5'}, return: 2.3 },
    { signalInfo: { signalName: 'Signal 6'}, return: -7.3 },
    { signalInfo: { signalName: 'Signal 7'}, return: 3.5 },
    { signalInfo: { signalName: 'Signal 8'}, return: -0.4 },
    { signalInfo: { signalName: 'Signal 9'}, return: -0.8 },
    { signalInfo: { signalName: 'Signal 10'}, return: -1.0 }
];

// 处理逻辑
const top5HighestReturns = [...Top5ReturnsArray]
  .sort((a, b) => b['return'] - a['return'])
  .slice(0, 5);

console.log(top5HighestReturns);

关键步骤说明

  • 复制原数组:用[...Top5ReturnsArray]创建原数组的浅拷贝,避免sort方法的原地排序修改原数组
  • 降序排序:sort回调中用b['return'] - a['return']实现按return值从高到低排序;由于return是JS关键字,用方括号访问属性避免语法错误
  • 截取前5个:slice(0,5)从排序后的数组中提取前5个元素,得到目标结果

输出结果

运行后会得到按return值降序排列的前5个对象:

[
  { signalInfo: { signalName: 'Signal 4' }, return: 4.0 },
  { signalInfo: { signalName: 'Signal 7' }, return: 3.5 },
  { signalInfo: { signalName: 'Signal 1' }, return: 3.0 },
  { signalInfo: { signalName: 'Signal 5' }, return: 2.3 },
  { signalInfo: { signalName: 'Signal 2' }, return: 1.4 }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:52:40