按值排序和截断对象数组

时间:2015-04-16 14:40:13

标签: javascript arrays object

说我有这样的数组:

var array = [
  {
    title: "something", 
    date: //date object
  },
  {
    title: "another one", 
    date: //date object
  },
  {
    title: "something else", 
    date: //date object
  },
  {
    title: "title here", 
    date: //date object
  },
  {
    title: "final one", 
    date: //date object
  }
];

阵列没有特别的顺序。我想按日期排序,因此具有最新日期值的对象位于开头,具有最早日期的对象位于数组的末尾。然后我想截断数组,所以我留下了3个对象(是最近日期的3个)。

这可以在javascript中使用吗?

1 个答案:

答案 0 :(得分:3)

当然是:

array.sort(function(a, b){
    return b.date.getTime() - a.date.getTime();
}).slice(0, 3);

我们使用Date类型对象的.getTime方法按降序排序。

它给出了:

[ { title: 'something', date: Sat, 20 Dec 2014 00:00:00 GMT },
  { title: 'something else', date: Wed, 10 Dec 2014 00:00:00 GMT },
  { title: 'final one', date: Thu, 20 Nov 2014 00:00:00 GMT } ]

输入:

var array = [
  {
    title: "something", 
    date: new Date("2014-12-20")
  },
  {
    title: "another one", 
    date: new Date("2014-10-20")
  },
  {
    title: "something else", 
    date: new Date("2014-12-10")
  },
  {
    title: "title here", 
    date: new Date("2014-02-20")
  },
  {
    title: "final one", 
    date: new Date("2014-11-20")
  }
];