首页 > 解决方案 > 按日期对 JSON 对象数组进行排序

问题描述

我通过 API 调用获得了这个 JSON 对象数组,我想按日期对其进行排序。但是日期格式是 ISO 格式,我是 javascript 新手,所以我不知道如何转换它然后对其进行排序。

  "statuses": [
    {
      "date": "2020-01-31T05:57:32.143Z",
      "status": "Awaiting Pickup"
    },
    {
      "date": "2020-01-30T07:55:08.033Z",
      "status": "Dispatched"
    },
    {
      "date": "2020-01-18T07:55:08.033Z",
      "status": "Parcel Assigned to Rider for Delivery"
    },
    {
      "date": "2020-01-12T07:55:08.033Z",
      "status": "Delivered"
    },
    {
      "date": "2020-01-24T07:55:08.033Z",
      "status": "Returned"
    }
  ],
}

标签: javascriptarraysjsonsorting

解决方案


使用sort. 对于转换,您可以使用new Date()

var obj={ "statuses": [
    {
      "date": "2020-01-31T05:57:32.143Z",
      "status": "Awaiting Pickup"
    },
    {
      "date": "2020-01-30T07:55:08.033Z",
      "status": "Dispatched"
    },
    {
      "date": "2020-01-18T07:55:08.033Z",
      "status": "Parcel Assigned to Rider for Delivery"
    },
    {
      "date": "2020-01-12T07:55:08.033Z",
      "status": "Delivered"
    },
    {
      "date": "2020-01-24T07:55:08.033Z",
      "status": "Returned"
    }
  ],
}
obj.statuses.sort((a,b)=>new Date(a.date)-new Date(b.date))
console.log(obj)


推荐阅读