按对象中的属性排序对象数组

时间:2016-01-27 14:13:19

标签: javascript arrays sorting

我有一系列对象,如:

[
 {date: "2016-01-07T15:01:51+00:00", text: "Lorem ipsum"}, 
 {date: "2016-22-08T15:04:36+00:00", text: "dolor"},
  // etc.
]

如何通过日期属性对这些进行排序的最佳方法是什么?我已经将这个数组映射到一个react组件,所以我认为在map函数中工作的任何解决方案都是首选,但不是必需的。

我目前正在尝试使用sort()方法,但无法解决如何将日期属性提供给它的问题。

1 个答案:

答案 0 :(得分:3)

您可以拥有自定义排序功能:

var data = [{
  date: "2016-07-01T15:01:51+00:00",
  text: "Lorem ipsum"
}, {
  date: "2016-02-22T15:04:36+00:00",
  text: "dolor"
}, {
  date: "2015-08-22T15:04:36+00:00",
  text: "test"
}]


var result = data.sort(function(a, b) {
  var date1 = new Date(a.date);
  var date2 = new Date(b.date);
  console.log(date1, date2);
  return (+date1 - +date2);
});

console.log(result)