javascript - 如何对数组等对象列表进行排序

标签 javascript arrays json sorting timestamp

我有一个 JSON 对象列表。在每个对象中,都有一个 unix 时间戳字段,这就是我想要排序的字段。所以我写了一个排序函数

function sortUnixTimestamp(a, b){
  var a = parseInt(a.timestamp);
  var b = parseInt(b.timestamp);
  return ((a > b) ? -1 : ((a < b) ? 1 : 0));
}

由于对象不是数组,我尝试了 [].sort.call(object).sort(sortUnixTimestamp); 但有时我得到 [].sort.call( ...).sort 不是函数

我还尝试通过执行 (object).sort(sortUnixTimestamp); 将其像数组一样排序,再次,时不时我会得到 (...).sort is不是函数

时不时地,因为它有一半的时间有效。为什么有时有效但并非总是有效?我该如何解决这个问题?

添加: 每个对象看起来像这样

{
    "field1": "string",
    "field2": "string",
    "timestamp": 0
}

所以列表看起来像

[
    {
      "field1": "string",
      "field2": "string",
      "timestamp": 0
    },
    {
      "field1": "string",
      "field2": "string",
      "timestamp": 0
    },
    ...
]

最佳答案

如果您的数据如下所示:

var data = [{
  timestamp: 3
}, {
  timestamp: 2
}, {
  timestamp: 1
}];

var result = data.sort((item1, item2) => item1.timestamp - item2.timestamp);

console.log(result);

您可以使用原生数组的排序功能。

关于javascript - 如何对数组等对象列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45944957/

相关文章:

javascript - Jquery 更改功能不适用于 React JS

arrays - 计算 Swift 4 mapKit 中注释的总纬度/经度?

vb.net - JSON.Net - 反序列化对象格式

jquery - 网站严格使用静态 html 文件、jquery、ajax 和 json Web 服务?

javascript - 使用鼠标拖动 HTML5 Canvas 中的元素

javascript - 基础下拉按钮样式不正确

c - 二维结构数组 : The segfaultening

php - 如何在不指定索引号的情况下在 PHP 中构建对象数组?

javascript - 如何使用嵌套 json 中的键创建另一个嵌套 json

Javascript 从 url (windows.location) 获取所有参数