javascript - 如何通过子属性对相同对象的数组进行排序?

标签 javascript arrays sorting properties

我有一系列项目,如下所示:

myarray = [
    {
      somedate: "2018-01-11T00:00:00",
      name: "John Doe",
      level: 6000
    },
    {
      somedate: "2017-12-18T00:00:00",
      name: "Don Jhoe",
      level: 53
    },
    {
      somedate: "2016-12-18T00:00:00",
      name: "Jane Doe",
      level: 100
    },
    {
      somedate: "2018-10-18T00:00:00",
      name: "Dane Joe",
      level: 1
    }
]

我试图弄清楚如何对这个数组进行排序,以便它按日期排序。我知道如何对简单属性数组进行排序:

Sort Javascript Object Array By Date

array.sort(function(a,b){
      // Turn your strings into dates, and then subtract them
      // to get a value that is either negative, positive, or zero.
      return new Date(b.date) - new Date(a.date);
    });

但是如何最好地处理按数组的项属性对数组进行排序呢?

编辑:是的,这些确实是由不处理时间的奇怪网络服务提供的不正确的日期字符串。

最佳答案

您发布的代码实际上工作得很好。 您需要做的就是比较 somedate 而不是 date,并将最终排序结果分配给原始结果(如果这是所需的)。

myarray = myarray.sort(function(a,b){
      return new Date(b.somedate) - new Date(a.somedate);
    });

关于javascript - 如何通过子属性对相同对象的数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54039542/

相关文章:

javascript - 如何向 actions.order.create paypal 集成添加更多属性

javascript - 如何从 javascript 函数中调用 javabean 方法?

javascript - moz-nullprincipal 是什么意思?

Java args 不兼容的类型

javascript - 工具提示出现在plotLine highcharts 下

arrays - 如何在单行上打印 bash 数组的输出

javascript - 如何在 Angular 6 中显示带有变化字符串的嵌套 JSON 对象

sorting - where() 和 sort() 不适用于 sails 中填充的记录

java - 以 "MMMyyyy"为键对 map 进行排序

MySQL - 按 ID 自动排序不起作用