如何在JavaScript中按日期对数组进行排序?

时间:2018-09-12 03:26:27

标签: javascript

我无法按日期对数组对象中的数组进行排序。

我有一个如下的数组对象。

[
  {
    "name": "February",
    "plantingDate": "2018-02-04T17:00:00.000Z",
  },
  {
    "name": "March",
    "plantingDate": "2018-03-04T17:00:00.000Z",
  },
  {
    "name": "January",
    "plantingDate": "2018-01-17T17:00:00.000Z",
  }
]

如何从一月到十二月对数组对象中的数组进行排序,如下所示。

[
  {
    "name": "January",
    "plantingDate": "2018-01-17T17:00:00.000Z",
  },
  {
    "name": "February",
    "plantingDate": "2018-02-04T17:00:00.000Z",
  },
  {
    "name": "March",
    "plantingDate": "2018-03-04T17:00:00.000Z",
  }
]

我请求帮助。

谢谢。

1 个答案:

答案 0 :(得分:2)

解析字符串以获取Date对象,然后解析sort by compare function

var a = [
  {
    "name": "February",
    "plantingDate": "2018-02-04T17:00:00.000Z",
  },
  {
    "name": "March",
    "plantingDate": "2018-03-04T17:00:00.000Z",
  },
  {
    "name": "January",
    "plantingDate": "2018-01-17T17:00:00.000Z",
  }
]

a.sort(function(a,b){
  return new Date(a.plantingDate) - new Date(b.plantingDate)
})

console.log(a)

作为Barmar commented

a.sort(function(a,b){
  return a.plantingDate > b.plantingDate;
})

也将起作用。