javascript - 如何对具有日期属性的对象数组进行排序?
问题描述
我有一个数组:
const arr = [
{ name: 'abc', date: '30/03/2014' },
{ name: 'cde', date: '30/03/2015' },
{ name: 'fgh', date: '20/04/2014' },
{ name: 'xyz', date: '17/09/2014' },
];
如何对该数组进行排序,以便输出如下所示:
const arr = [
{ name: 'cde', date: '30/03/2015' },
{ name: 'xyz', date: '17/09/2014' },
{ name: 'fgh', date: '20/04/2014' },
{ name: 'abc', date: '30/03/2014' },
];
// 以最新的日期对数组进行排序。
解决方案
将Array#sort与您自己的排序比较器一起使用。为此,可以比较split
的正确顺序中的日期和构建。new Date
const arr = [
{ name: 'abc', date: '30/03/2014' },
{ name: 'cde', date: '30/03/2015' },
{ name: 'fgh', date: '20/04/2014' },
{ name: 'xyz', date: '17/09/2014' },
];
arr.sort((a,b) => {
let tempA = a.date.split('/');
let tempB = b.date.split('/');
return ((new Date(tempB[2],tempB[1],tempB[0])) - (new Date(tempA[2],tempA[1],tempA[0])));
});
console.log(arr);
推荐阅读
- android - WorkContinuation 的第二个 WorkRequest 不起作用
- c# - 扩展继承的属性 c#
- javascript - 使用移动设备/其他笔记本电脑从本地主机登录 Google 登录以进行测试
- javascript - 角度表达式未在视图中更新
- javascript - 新的 AngularJS 数据网格和框架
- batch-file - 使用 for 循环批量删除完整的注册表项
- python - 如果其他列中的值相同,则向前或向后填充 NA
- ios - UIVisualEffectView 模糊图像
- date - date-fns - 库以这种格式返回日期 (2018-08-240)
- angular - Angular 6 - 无法使用过滤器方法读取null的属性