javascript - 如果看到重复值,如何按键对对象数组进行排序,然后在 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}
]
我尝试了很多方法,但我无法解决它,因为它同时与两个键有关。
解决方案
您可以使用Array.sort
to 首先排序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);
推荐阅读
- node.js - 时代/pkg 错误!套接字超时
- java - 如何在 redis 集群中拆分数据?
- javascript - NullInjectorError:没有全局变量的提供者
- ios - 如何在swift 3中获取所有收集单元格的索引?
- php - PHP数据库连接错误,无法获取数据库类实例
- python - 代理:机器人框架和 Firefox
- css - z-index 不适用于相对位置
- phpstorm - 按钮的 aria-label="toggle" 在 PhpStorm 中报告为 INVALID
- python - 如何将交换文件附件传递给 pd.read_excel?
- perl - 如何在循环中将perl格式头写入多个文件