给定以下对象数组,我需要按日期字段对它们进行升序排序。
var myArray = [
{
name: "Joe Blow",
date: "Mon Oct 31 2016 00:00:00 GMT-0700 (PDT)"
},
{
name: "Sam Snead",
date: "Sun Oct 30 2016 00:00:00 GMT-0700 (PDT)"
},
{
name: "John Smith",
date: "Sat Oct 29 2016 00:00:00 GMT-0700 (PDT)"
}
];
在上面的示例中,最终结果将是 John Smith、Sam Snead 和 Joe Blow。
我正在尝试使用 lodash 的 _.sortBy() ,但无论我如何尝试使用它,我都无法进行任何排序:
_.sortBy(myArray, function(dateObj) {
return dateObj.date;
});
或者
_.sortBy(myArray, 'date');
我需要更改什么才能正确排序我的数组?我还有 Moment.js,所以如果需要我可以用它来格式化日期字符串。我尝试使用 .unix()
转换日期属性,但这没有什么不同。
谢谢。
原文由 wonder95 发布,翻译遵循 CC BY-SA 4.0 许可协议
你真的不需要lodash。您可以使用 JavaScript 的
Array.prototype.sort
方法。您需要根据日期字符串创建
Date
对象,然后才能比较它们。