js数组排序 多条件

按照【次数】和【时间】排序,选择次数最多的排在前面,同样次数的情况下时间较新排在前面。

原始数据

1 var arr= [ 
2     {name:'qqq', num:2,time:'2015-06-08 13:44:18'}, 
3     {name:'www', num:3,time:'2015-06-08 13:44:18'}, 
4     {name:'eee', num:4,time:'2015-06-07 13:40:18'},    
5     {name:'rrr', num:4,time:'2015-06-08 13:44:18'},   
6    {name:'yyy', num:6,time:'2015-06-07 13:40:18'}, 
7 ];

排序后的数据:

1 arr= [ 
2     {name:'yyy', num:6,time:'2015-06-07 13:40:18'},
3     {name:'rrr', num:4,time:'2015-06-08 13:44:18'}, 
4     {name:'eee', num:4,time:'2015-06-07 13:40:18'},   
5     {name:'www', num:3,time:'2015-06-08 13:44:18'},  
6     {name:'qqq', num:2,time:'2015-06-08 13:44:18'}
7 ];

代码实现:

1 arr.sort(function(a, b){
2     if (a.num === b.num) {
3         return new Date(b.time.replace(/-/g, "/")) - new Date(a.time.replace(/-/g, "/"))
4     } else {
5         return b.num - a.num;
6     }
7 });

 

posted @ 2018-08-17 11:22  王志强zzz  阅读(237)  评论(0编辑  收藏  举报