按两个条件对数组进行排序

时间:2020-02-14 11:25:39

标签: javascript arrays

我有这样的数组:

const array = [{
    id: 1,
    date: 591020824000,
    isImportant: false,
  },
  {
    id: 2,
    date: 591080224000,
    isImportant: false,
  },
  {
    id: 3,
    date: 591080424000,
    isImportant: true,
  },
  {
    id: 4,
    date: 591080225525,
    isImportant: false,
  },
  {
    id: 5,
    date: 591020225525,
    isImportant: true,
  },
];

我正在尝试对该数组进行排序,以便首先显示isImportant:true和最近日期的元素,然后显示isImportant:false和最近日期的元素

2 个答案:

答案 0 :(得分:0)

array.sort(function(a,b){
    if(a.isImportant && !b.isImportant)
        return -1;
    if(!a.isImportant && b.isImportant)
        return 1;
    return b.date-a.date;
});

我希望这能解决您的问题

答案 1 :(得分:0)

array.sort((a,b)=>{
    if(a.isImportant==b.isImportant){
        return b.date-a.date;
    }else{
        return a.isImportant?-1:1;
    }
})

duplicate of this