首页 > 解决方案 > 如果看到重复值,如何按键对对象数组进行排序,然后在 javascript 中按另一个键对它们进行排序?

问题描述

为了通过两个不同的键对一组对象进行排序,我遇到了问题。我想按价格对这个数组进行排序,如果多个价格相同,则按时间对它们进行排序。我有一些类似这个数组的东西:

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}
]

排序后必须是这样的:

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

我尝试了很多方法,但我无法解决它,因为它同时与两个键有关。

标签: javascriptarrayssorting

解决方案


您可以使用Array.sortto 首先排序price,然后time

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) => {
  return a.price - b.price || a.time - b.time;
});
console.log(myArr);


推荐阅读