按两个条件排序数组

问题描述 投票:-1回答:2

我有这样的数组:

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和最近日期的元素

javascript arrays
2个回答
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;
});

我希望这能解决您的问题


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

duplicate of this

© www.soinside.com 2019 - 2024. All rights reserved.