首页 > 解决方案 > 如何对具有日期属性的对象数组进行排序?

问题描述

我有一个数组:

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

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

标签: javascriptnode.jsarrayssorting

解决方案


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


推荐阅读