按日期排序JavaScript对象数组(mm / DD / yyyy hh / mm / ss Am / Pm)
var array = [
{ id: 1, date: Mar 12 2017 10:00:00 AM },
{ id: 2 ,date: Mar 12 2017 08:00:00 PM },
{ id: 3, date: Mar 12 2017 05:00:00 AM },
{ id: 4, date: Mar 18 2017 09:00:00 AM }
];
Here is my logic:-
sortedPatients = PatientsListArray.sort((a, b) =>
b.Date.split('/')
.reverse()
.join()
.localeCompare(
a.Date.split('/')
.reverse()
.join()
)
)
得到像id4 , id1 , id2 , id3
预期输出,例如id4, id2, id3, id1
答案 0 :(得分:2)
const array = [
{id: 1, date: 'Mar 12 2017 10:00:00 AM'},
{id: 2, date: 'Mar 12 2017 08:00:00 PM'},
{id: 3, date: 'Mar 12 2017 05:00:00 AM'},
{id: 4, date: 'Mar 18 2017 09:00:00 AM'},
];
console.log(
array.sort((a, b) => new Date(b.date) - new Date(a.date))
);

使用sort
方法中的此回调函数,您将获得id4,id2,id1和id3的顺序。我不明白你为什么要获得订单id4,id2, id3和id1 。
如果您想要反转订单,只需交换b
和a
的位置,即可(a, b) => new Date(a.date) - new Date(b.date)
。
如果您已经拥有Date
个对象(就像您在代码中使用b.Date
和a.Date
一样),您可以这样编写:
sortedPatients = PatientsListArray.sort((a, b) => b.Date - a.Date))