js 数组多字段排序

代码:
let arr = [{name:'白鸽',year:'2022',month:'2'},{name:'麻雀',year:'2022',month:'3'},{name:'白鸽',year:'2022',month:'8'},{name:'大象',year:'2021',month:'9'},{name:'麻雀',year:'2021',month:'8'}]

arr.sort((l, i) => {
     let aTime = new Date(`${l.year}-${l.month}-1`)
   let bTime = new Date(`${i.year}-${i.month}-1`)
    if(i.name!=l.name){
        return i.name.localeCompare(l.name);
    }else if(aTime.getTime()!=bTime.getTime()){

        return aTime.getTime() -bTime.getTime()
    }
          
 })

这里先按照名字排序,再按照年月进行排序,

总结:有多少个字段要排序,就要在sort里面写多少个if  else,效果:

 

posted @ 2022-07-28 18:09  洛晨随风  阅读(999)  评论(0编辑  收藏  举报