javascript - 根据键对数组进行排序,如果键与其他键相等,请检查

标签 javascript arrays sorting

<分区>

假设我有这样的对象数组:

var DATA = [
  {
    "id": "5",
    "price": 170
  },
  {
    "id": "1",
    "price": 170
  },
  {
    "id": "2",
    "price": 270
  },
  {
    "id": "8",
    "price": 70
  }
]

我想按价格降序排序,但如果价格相等,我想按 id 升序排序。

如果价格相等,我不知道如何使用 id 排序。

DATA.sort(function(a, b){
    var priceA = a.price,
        priceB = b.price,
        idA = a.id,
        idB = b.id;
    if(priceA < priceB) return 1;
    if(priceA > priceB) return -1;
    return 0;
});

提前致谢

最佳答案

您可以链接所需的排序顺序。

var data = [{ id: "5", price: 170 }, { id: "1", price: 170 }, { id: "2", price: 270 }, { id: "8", price: 70 }];

data.sort((a, b) =>
    b.price - a.price ||
    a.id - b.id
);

console.log(data);

关于javascript - 根据键对数组进行排序,如果键与其他键相等,请检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58123691/

相关文章:

javascript - 当类文本换行不起作用时,如何在 Vuetify 中将文本换行到下一行?

javascript - JS - jQuery inarray ignoreCase() 和 contains()

javascript 在远程服务器上调用函数并在该服务器上执行函数

javascript - Javascript 中对象伪装的工作原理

javascript - 表单验证和数组,如何收缩多个 if 和 else 语句?

sorting - Google Script 排序故障排除(作为 2 个函数使用但不合并)

python - Python 中的插入排序代码排序不正确

sorting - MRJob 为什么要对我的 key 进行排序?

javascript - AngularJS - 从 json 文件加载其 src 时 iframe 不显示

javascript - 如何使用 REGEXP 就地反转字符串中的这些单词?