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 });