【问题标题】:JQuery Sorting array of object using date [duplicate]JQuery使用日期对对象数组进行排序[重复]
【发布时间】: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

标签: javascript jquery 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);

【讨论】:

    猜你喜欢
    • 2015-02-25
    • 1970-01-01
    • 2023-04-10
    • 2021-03-29
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多