Javascript 使用日期对对象的JQuery排序数组
我有一个对象数组,每个对象中都包含lastModifiedDate属性。 我想根据lastModifiedDate属性按升序和降序对对象数组进行排序。如果日期相同,则排序应基于日期的时间Javascript 使用日期对对象的JQuery排序数组,javascript,jquery,date,Javascript,Jquery,Date,我有一个对象数组,每个对象中都包含lastModifiedDate属性。 我想根据lastModifiedDate属性按升序和降序对对象数组进行排序。如果日期相同,则排序应基于日期的时间 var completeData = [{name: 'xyz', lastModifiedDate: 1579329711458}, {name: 'abc', lastModifiedDate: 1579339014519}] 我已尝试使用以下代码对上述数组进行排序 对于升序: completeData.
var completeData = [{name: 'xyz', lastModifiedDate: 1579329711458}, {name: 'abc', lastModifiedDate: 1579339014519}]
我已尝试使用以下代码对上述数组进行排序
对于升序:
completeData.sort(function(a, b){
return new Date( a.lastModifiedDate ) < new Date( b.lastModifiedDate );
});
completeData.sort(function(a, b){
return new Date( a.lastModifiedDate ) > new Date( b.lastModifiedDate );
});
如果
lastModifiedDate
是时间戳的数字值,那么为什么需要比较这些时间戳的日期对象?您只能比较这些数字,以便高效执行排序,如下所示
completeData.sort(function(a, b){
return a.lastModifiedDate - b.lastModifiedDate;
});
当您需要显示日期格式时,您可以使用日期对象进行演示。用于降序
completeData.sort(function(a, b){
var nameA= a.lastModifiedDate, nameB=b.lastModifiedDate
if (nameA < nameB)
return 1
if (nameA > nameB)
return -1
return 0 //default return value (no sorting)
});
completeData.sort(function(a, b){
var nameA= a.lastModifiedDate, nameB=b.lastModifiedDate
if (nameA < nameB)
return -1
if (nameA > nameB)
return 1
return 0 //default return value (no sorting)
});
completeData.sort(函数(a,b){
变量nameA=a.lastModifiedDate,nameB=b.lastModifiedDate
if(nameA名称B)
返回-1
返回0//默认返回值(无排序)
});
为了提升
completeData.sort(function(a, b){
var nameA= a.lastModifiedDate, nameB=b.lastModifiedDate
if (nameA < nameB)
return 1
if (nameA > nameB)
return -1
return 0 //default return value (no sorting)
});
completeData.sort(function(a, b){
var nameA= a.lastModifiedDate, nameB=b.lastModifiedDate
if (nameA < nameB)
return -1
if (nameA > nameB)
return 1
return 0 //default return value (no sorting)
});
completeData.sort(函数(a,b){
变量nameA=a.lastModifiedDate,nameB=b.lastModifiedDate
if(nameA名称B)
返回1
返回0//默认返回值(无排序)
});
这是日期。升序排序和降序排序的代码示例看起来都一样。我没有更改较大和较小的符号。无需将
lastModifiedDate
转换为日期。代码正常工作。谢谢。你能接受这个答案吗@TalesI已按原样接受上述代码shorter@Tales请检查JSFIDLE是否正常工作。。如果要按降序排列,则必须使用返回b.lastModifiedDate-a.lastModifiedDate代码>谢谢你。它起作用了
var completeData = [
{
name: 'xyz',
lastModifiedDate: 1579329711458
},
{
name: 'abc',
lastModifiedDate: 1579339014519
}
];
var result = completeData.sort(function (a, b) {
return b.lastModifiedDate - a.lastModifiedDate;
})
console.log(result);