Javascript 如何根据日期属性对项目列表进行排序?

Javascript 如何根据日期属性对项目列表进行排序?,javascript,momentjs,Javascript,Momentjs,我有一个问题列表,我想根据日期、时间、属性对它们进行排序。如何做到这一点?您不必使用矩来解析日期字符串来对数组进行排序。只需对字符串进行排序即可 为此,你可以使用f.e const问题=[{ “_id”:“5bbe4c6d5eca146adc895fa4”, “标题”:“如何在添加和删除Ajax文本之间切换”, “日期”:“2018-10-10T22:01:01+03:00”, “问题ID”:“5bbda46a433ced65ac7c4699”, “voteNumber”:0, }, { “_

我有一个问题列表,我想根据日期、时间、属性对它们进行排序。如何做到这一点?

您不必使用矩来解析日期字符串来对数组进行排序。只需对字符串进行排序即可

为此,你可以使用f.e

const问题=[{
“_id”:“5bbe4c6d5eca146adc895fa4”,
“标题”:“如何在添加和删除Ajax文本之间切换”,
“日期”:“2018-10-10T22:01:01+03:00”,
“问题ID”:“5bbda46a433ced65ac7c4699”,
“voteNumber”:0,
},
{
“_id”:“5bbe4c6d5eca146adc895fa4”,
“标题”:“如何在添加和删除Ajax文本之间切换”,
“日期”:“2018-10-11T22:01:01+03:00”,
“问题ID”:“5bbda46a433ced65ac7c4699”,
“voteNumber”:0,
},{
“_id”:“5bbe4c6d5eca146adc895fa4”,
“标题”:“如何在添加和删除Ajax文本之间切换”,
“日期”:“2018-10-09T22:01:01+03:00”,
“问题ID”:“5bbda46a433ced65ac7c4699”,
“voteNumber”:0,
}];

log(questions.sort((a,b)=>b.date.localeCompare(a.date))您可以这样做:

const questions = [
    {
        "_id" : ObjectId("5bbe4c6d5eca146adc895fa4"),
        "title" : "How to Toggle between adding and removing Ajax text",
        "date" : "2018-10-10T22:01:01+03:00",
        "questionerId" : "5bbda46a433ced65ac7c4699",
        "voteNumber" : 0,
    },
    ,
];
但是,我建议在实际排序之前将所有日期字符串转换为日期实例:

questions.sort((a, b) => new Date(a.date) - new Date(b.date))

到目前为止你试过什么?有很多方法可以完成排序。我知道一些排序技术,但按日期排序对我来说似乎很复杂。啊,我明白了。所以问题是,由于矩.js格式,您不确定dateA是否比dateB早。是这样吗?请您确认我们提供的解决方案是否对您有利?对不起,我迟到了。它不起作用。
questions
  .map(q => ({ ...q, date: new Date(q.date) }))
  .sort((a, b) => a.date - b.date)