javascript - 按日期排序数组

标签 javascript jquery angularjs

如何根据每个对象的 dt(日期)属性对以下示例数组进行排序?

$scope.arr = [ 
    {test: 1, dt: 'March, 10 2016 14:55:00'},
    {test: 2, dt: 'February, 10 2013 14:25:00'},
    {test: 3, dt: 'August, 10 2015 14:55:00'} 
];

我试过 _.sortBy($scope.arr, 'dt'),但它将日期视为一个字符串并且只按字母顺序排序。我尝试将日期转换为 unix 时间,这实际上很复杂,因为我的真实代码更复杂。

对于按降序对上述内容进行排序并在下拉列表中显示结果,您还有其他建议吗?

最佳答案

您可以使用此回调进行排序,它使用日期等效项进行比较:

$scope.arr.sort( (a, b) => new Date(a.dt) - new Date(b.dt) );

$scope = {}; // for the snippet to work
$scope.arr = [ 
    {test: 1, dt: 'March, 10 2016 14:55:00'},
    {test: 2, dt: 'February, 10 2013 14:25:00'},
    {test: 3, dt: 'August, 10 2015 14:55:00'} 
];

$scope.arr.sort( (a, b) => new Date(a.dt) - new Date(b.dt) );

console.log($scope.arr);

关于javascript - 按日期排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38856241/

相关文章:

javascript - 同步 3 个图表之间的缩放级别

javascript - ReactJS 表单字段的值未更新,并记录为日期字段

javascript - jquery ajax 调用没有按预期返回

jquery - ASP.net MVC 验证在不正确的字段上突出显示和图标 Jquery

angularjs - 如何测试由事件执行的 Controller 范围内的函数

javascript - for循环if语句未进入

jquery - 如何查找另一个范围内包含文本的范围

angularjs - 将指令注入(inject) Controller

javascript - (AngularJS) 全局替换数组中的值的最有效方法

java - 电话间隙 : calling a java function from Javascript