我有一个 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/