我有一系列项目,如下所示:
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/