说我有这样的数组:
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中使用吗?
答案 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")
}
];