排序在项目中还是挺常用的,一般都是从后台获取数组对象,然后根据其中的一个属性进行升序或者降序处理,下面我们就来根据栗子介绍一下;

1、封装数组对象排序方法;

// 封装数组对象排序方法

        compare(prop) {

            return function(a, b) {

                return b[prop] - a[prop]  // 降序

                //  return a[prop] - b[prop]  // 升序

            }

        },

// 比如arrList对象中根据score属性进行从大到小的排序

   this.arrList = this.arrList.sort(this.compare('score'))

2、按照数组中的日期对象进行排序

升序:

// 如何对数组进行排序,从最早到最新,反之亦然?

const arr = [
  {id: 1, value : "value1", date: "2018-08-08", time: "15:27:17"},
  {id: 2, value : "value2", date: "2018-08-09", time: "12:27:17"},
  {id: 3, value : "value3", date: "2018-08-10", time: "17:27:17"},
  {id: 4, value : "value4", date: "2018-08-10", time: "01:27:17"},
  {id: 5, value : "value5", date: "2018-08-10", time: "09:27:17"},
  {id: 6, value : "value6", date: "2018-08-10", time: "23:27:17"},
  {id: 7, value : "value7", date: "2018-08-10", time: "16:27:17"},
  {id: 8, value : "value8", date: "2018-08-11", time: "10:27:17"}
];

arr.sort((a, b) => a.date.localeCompare(b.date) || a.time.localeCompare(b.time));  // 
console.log(arr);

控制台打印:

 
降序:

const arr = [
{id: 1, value : "value1", date: "2018-08-08", time: "15:27:17"},
{id: 2, value : "value2", date: "2018-08-09", time: "12:27:17"},
{id: 3, value : "value3", date: "2018-08-10", time: "17:27:17"},
{id: 4, value : "value4", date: "2018-08-10", time: "01:27:17"},
{id: 5, value : "value5", date: "2018-08-10", time: "09:27:17"},
{id: 6, value : "value6", date: "2018-08-10", time: "23:27:17"},
{id: 7, value : "value7", date: "2018-08-10", time: "16:27:17"},
{id: 8, value : "value8", date: "2018-08-11", time: "10:27:17"}
];

arr.sort((a, b) => b.date.localeCompare(a.date) || b.time.localeCompare(a.time));
console.log(arr);

控制输出:

参考文章: JS—如何按日期对象数组进行排序,然后按时间顺序进行降序排序? - 可樂_Thompson - 博客园

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐