如何对具有日期属性的对象数组进行排序?

时间:2020-09-01 12:04:40

标签: javascript node.js arrays sorting

我有一个数组:

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

//以日期最晚的顺序对数组进行排序。

1 个答案:

答案 0 :(得分:0)

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