Javascript 如何对具有两个日期的对象数组进行排序?

Javascript 如何对具有两个日期的对象数组进行排序?,javascript,node.js,arrays,sorting,object,Javascript,Node.js,Arrays,Sorting,Object,我的阵列: var arr = [ {id: 1, start_date:'2020-04-13', end_date: '2020-07-05'}, {id: 2, start_date:'2020-04-13', end_date: '2020-07-16'}, {id: 3, start_date:'2020-05-25', end_date: '2020-12-31'}, {id: 4, start_date:'2020-07-01', end_date: '2020-1

我的阵列:

var arr = [
  {id: 1, start_date:'2020-04-13', end_date: '2020-07-05'},
  {id: 2, start_date:'2020-04-13', end_date: '2020-07-16'},
  {id: 3, start_date:'2020-05-25', end_date: '2020-12-31'},
  {id: 4, start_date:'2020-07-01', end_date: '2020-12-31'},
  {id: 5, start_date:'2020-07-01', end_date: '2020-08-02'}
];
我想根据开始日期和结束日期对该数组进行排序。它的工作方式是开始日期按降序排列,即日期越晚,它在数组中的位置越高。但是,如果有多个开始日期包含同一日期,则应查看结束日期。在这种情况下,结束日期应按升序排列

我正在尝试以以下格式获取数组:

var new_arr = [
  {id: 5, start_date:'2020-07-01', end_date: '2020-08-02'},
  {id: 4, start_date:'2020-07-01', end_date: '2020-12-31'},
  {id: 3, start_date:'2020-05-25', end_date: '2020-12-31'},
  {id: 1, start_date:'2020-04-13', end_date: '2020-07-05'},
  {id: 2, start_date:'2020-04-13', end_date: '2020-07-16'}

];

您可以使用
Array.sort
方法实现它

var-arr=[
{id:1,开始日期:'2020-04-13',结束日期:'2020-07-05'},
{id:2,开始日期:'2020-04-13',结束日期:'2020-07-16'},
{id:3,开始日期:'2020-05-25',结束日期:'2020-12-31'},
{id:4,开始日期:'2020-07-01',结束日期:'2020-12-31'},
{id:5,开始日期:'2020-07-01',结束日期:'2020-08-02'}
];
变量结果=arr.sort((a,b)=>{
如果(a.开始日期b.结束日期){
返回1;
}否则{
返回0;
}
}否则{
返回0;
}
});
控制台日志(结果)