JQuery使用日期对对象数组进行排序[重复]

Posted

技术标签:

【中文标题】JQuery使用日期对对象数组进行排序[重复]【英文标题】:JQuery Sorting array of object using date [duplicate] 【发布时间】:2020-05-05 01:47:20 【问题描述】:

我有一个对象数组,其中每个对象都包含 lastModifiedDate 属性。 我想根据 lastModifiedDate 属性按升序和降序对对象数组进行排序。如果日期相同,则应根据日期的时间进行排序。

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 转换为Date 【参考方案1】:

如果lastModifiedDate时间戳的数字值,那么为什么需要比较这些时间戳的日期对象,您可以比较这些数字,以便有效地执行如下排序。

completeData.sort(function(a, b)
   return  a.lastModifiedDate - b.lastModifiedDate;
);

当您需要显示日期格式时,您可以使用 Date 对象进行演示。

【讨论】:

@Tales 请检查 jsfiddle jsfiddle.net/t3m2bcgL 它工作正常。如果你想按降序排列,那么你必须使用return b.lastModifiedDate - a.lastModifiedDate; 谢谢。它的工作【参考方案2】:

对于降序,

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)
                );

这是日期。

【讨论】:

代码正在运行。谢谢。 你能接受答案吗? ? @故事 我接受了上面的代码,因为它更短【参考方案3】:
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);

【讨论】:

以上是关于JQuery使用日期对对象数组进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

按日期排序对象数组[重复]

具有更多对象的Jquery排序数组[重复]

按日期排序数组 - javascript [重复]

Jquery 或 PHP 按日期字段分组对象数组

javascript 使用日期值按单键对对象数组进行排序

基于对象属性对数组进行排序 - Javascript [重复]