【问题标题】:How to sort array of objects have date properties? [duplicate]如何对具有日期属性的对象数组进行排序? [复制]
【发布时间】:2020-12-20 13:07:13
【问题描述】:

我有一个数组:

    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' },
    ];

// 对数组进行排序,日期在最前。

【问题讨论】:

  • 你必须将日期格式设置为“YYYY-MM-DD”然后你可以直接比较

标签: javascript node.js arrays sorting


【解决方案1】:

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);

【讨论】:

    猜你喜欢
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 2021-01-15
    相关资源
    最近更新 更多