javascript - 按值排序和 chop 对象数组

标签 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
  }
];

数组没有特定的顺序。我想按日期排序,所以具有最新日期值的对象位于数组的开头,而具有最早日期的对象位于数组的末尾。然后我想 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/

相关文章:

javascript - JQuery 使用计时器在 for 循环中更改 CSS

c - 结构中字节数组的对齐

javascript - Object.assign() 创建的是深拷贝还是浅拷贝?

javascript - 日期数组排序/控制台错误?

php - 如何用多维数组填充表

javascript - 在树状 angularjs 模型中检索对象

ruby-on-rails - Ruby:用另一个数组对数组进行排序

javascript - 如何将数组推送到对象中不存在的对象?

javascript - 在 AngularJS 中正确传递函数值

javascript - ng-click 不打开新窗口