假设我有一个这样的数组:
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
}
];
数组没有特定的顺序。我想按日期排序,所以具有最新日期值的对象位于数组的开头,而具有最早日期的对象位于数组的末尾。然后我想 chop 数组,以便在其中留下 3 个对象(即具有最近日期的 3 个对象)。
这在 javascript 中可行吗?
最佳答案
当然是:
array.sort(function(a, b){
return b.date.getTime() - a.date.getTime();
}).slice(0, 3);
我们利用 .getTime Date 类型对象降序排序的方法。
它给出:
[ { 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")
}
];
关于javascript - 按值排序和 chop 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29678095/