繁体   English   中英

如何先按属性值然后按日期排序

[英]How to sort first by a property value then by date

让这个对象:

{
    type: string,
    date: Date
}

我有一个如上所述的对象数组,我想对其进行排序以获取具有“高级”类型的第一个项目,然后列出所有其他项目,按日期排序。

如何使用 Javascript 的sort方法完成此操作?

使用自定义排序函数并添加一些硬约束。 可能有一些小问题,但大部分应该没问题

 let obj = [{ type: 'Premium', date: new Date('1995-12-17T03:24:00') }, { type: 'random', date: new Date('1995-12-17T03:24:00') }, { type: 'Premium', date: new Date('1995-12-17T03:22:00') }, { type: 'random', date: new Date('1995-12-17T03:21:00') }, { type: 'random', date: new Date('1995-12-17T03:20:00') }] let obj2 = obj.sort((x, y) => { if(x.type == 'Premium') return 1 if(y.type == 'Premium') return -1 if(x.date > y.date) return 1 if(x.date < y.date) return -1 return 0 }).reverse() console.log(obj2)
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="script.js"></script> </head> <body> </body> </html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM