如何根据每个对象的 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/