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
相关产品推荐
相关产品推荐

