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

JavaScript如何实现对象数组按键排序,值重复时按另一键二次排序?

JavaScript 对象数组多优先级排序方案

核心实现逻辑

直接在Array.sort()的比较函数中按优先级判断排序字段即可:

  • 首先对比两个元素的price字段,值小的排在前面
  • 若price值相等,再对比time字段,值小的排在前面

完整代码

首先注意你给出的示例数组存在语法错误:JS对象的键与值之间需要用冒号:分隔,不是等号=,修正后完整可运行代码如下:

var myArr = [
  {"value":5 , "price":10, "time":3},
  {"value":1.5 , "price":2, "time":2},
  {"value":3 , "price":5, "time":4},
  {"value":1 , "price":2, "time":1}
]

// 多字段排序逻辑
myArr.sort((a, b) => {
  // 优先按price升序
  if (a.price !== b.price) {
    return a.price - b.price
  }
  // price相同则按time升序
  return a.time - b.time
})

console.log(myArr)

运行后得到的结果和你期望的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 03:09:01