【问题标题】:Fastest way to sort an array by timestamp按时间戳对数组进行排序的最快方法
【发布时间】:2011-09-26 12:25:08
【问题描述】:

如何按时间戳对这个数组进行排序,最快的方法是什么(数组有很多条目)?

我的数组

  myList = new Array();

  myList[0]               = {};
  myList[0]['title']      = 'I am really new';
  myList[0]['timestamp']  = 1317039046;
  myList[0]['date']       = '2011-09-26T12:10:46+00:00'; 

  myList[1]               = {};
  myList[1]['title']      = 'I am the oldest';
  myList[1]['timestamp']  = 1315656646;
  myList[1]['date']       = '2011-09-10T12:10:46+00:00';

  myList[2]               = {};
  myList[2]['title']      = 'I am older';
  myList[2]['timestamp']  = 1316866246;
  myList[2]['date']       = '2011-09-24T12:10:46+00:00';

  myList[3]               = {};
  myList[3]['title']      = 'I am old';
  myList[3]['timestamp']  = 1316952646;
  myList[3]['date']       = '2011-09-25T12:10:46+00:00';

示例
http://jsbin.com/ejagup/2/edit#preview

【问题讨论】:

  • 仅供参考,您可以使用myList = [];,如果您不想要全局变量,请在其前面加上varvar myList = [];

标签: javascript sorting timestamp


【解决方案1】:
myList.sort(function(x, y){
    return x.timestamp - y.timestamp;
})

myList 是一个 JavaScript 数组,支持 sort 方法。该方法接受一个函数作为参数,根据返回值对数组进行排序。

目前,排序算法会将时间戳最低的元素放在最前面。如果你想在另一个方向对数组进行排序,请交换 x.timestampy.timestamp

【讨论】:

  • OP没有问,但是sort方法也可以按日期排序——他只需要把字符串转换成Date对象再减去——jsbin.com/ejagup/4/edit
  • @Blazemonger 的评论为我省去了很多麻烦
猜你喜欢
  • 2011-10-14
  • 1970-01-01
  • 2019-02-08
  • 2020-01-01
  • 1970-01-01
  • 2021-11-15
  • 2012-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多