Javascript 如何对数组等对象列表进行排序
我有一个JSON对象列表。在每个对象中,都有一个unix时间戳字段,这就是我想要排序的对象。所以我写了一个排序函数Javascript 如何对数组等对象列表进行排序,javascript,arrays,json,sorting,timestamp,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)); } 所以这个列表看起来像 [ { "field1": "st
function sortUnixTimestamp(a, b){
var a = parseInt(a.timestamp);
var b = parseInt(b.timestamp);
return ((a > b) ? -1 : ((a < b) ? 1 : 0));
}
所以这个列表看起来像
[
{
"field1": "string",
"field2": "string",
"timestamp": 0
},
{
"field1": "string",
"field2": "string",
"timestamp": 0
},
...
]
如果您的数据如下所示:
var数据=[{
时间戳:3
}, {
时间戳:2
}, {
时间戳:1
}];
var result=data.sort((item1,item2)=>item1.timestamp-item2.timestamp);
控制台日志(结果)代码>如果您的数据如下所示:
var数据=[{
时间戳:3
}, {
时间戳:2
}, {
时间戳:1
}];
var result=data.sort((item1,item2)=>item1.timestamp-item2.timestamp);
控制台日志(结果)代码>如果对象位于数组中,则可以按其时间戳值对其进行排序:
var arrayObj = [
{timestamp: 12},
{timestamp: 10},
{timestamp: 2},
{timestamp: 23}
];
通过调用array.prototype.sort()方法按对象的时间戳属性对对象数组进行排序,如下所示:
arrayObj.sort(function (a,b) {
return a.timestamp - b.timestamp;
});
这应该输出:
[ { timestamp: 2 },
{ timestamp: 10 },
{ timestamp: 12 },
{ timestamp: 23 } ]
如果对象位于数组中,则可以按其时间戳值对其进行排序:
var arrayObj = [
{timestamp: 12},
{timestamp: 10},
{timestamp: 2},
{timestamp: 23}
];
通过调用array.prototype.sort()方法按对象的时间戳属性对对象数组进行排序,如下所示:
arrayObj.sort(function (a,b) {
return a.timestamp - b.timestamp;
});
这应该输出:
[ { timestamp: 2 },
{ timestamp: 10 },
{ timestamp: 12 },
{ timestamp: 23 } ]
您的原始数据看起来如何?@FelixMosheev请参阅更新的JSON对象定义问题什么是object
?你说这是一张单子。如果它不是一个数组,它是从库中来的吗?对象在列表[]@4castle它是从数据库中提取的,它是一个JSON对象列表显示原始数据的样子?@FelixMosheev查看更新的JSON对象定义问题什么是对象
?你说这是一张单子。如果它不是一个数组,它是从库中来的吗?对象在list[]@4castle中。它是从数据库中提取的,它是一个JSON对象列表。我不明白的是,JSON对象不应该被视为数组,对吗?还有,为什么我的原始排序函数只在某些时候起作用?我不明白的是,JSON对象不应该被视为数组,对吗?还有,为什么我原来的排序函数只在某些时候起作用?