我需要按其嵌套属性按降序对对象数组进行排序,但是需要排序的属性却“存储”在属性索引中(不确定那是否是所谓的)。我该如何使用.sort()?
我尝试搜索关于stackoverflow的答案,并且有很多相关主题,但是我找不到此特定答案或我听不懂。.
我尝试了以下代码:
ld
答案 0 :(得分:2)
return startB - startA;
而不是return startA + startB;
。
答案 1 :(得分:0)
您已经接近:只需将return startA + startB;
更改为return startA > startB ? -1 : 1;
var array = [
{user:"Julia", startTime: "2019-04-09T11:22:36"},
{user:"Lisa", startTime:"2019-04-10T11:22:36"},
{user:"Hank", startTime:"2019-04-11T11:22:36"},
{user:"Hank", startTime:"2019-04-08T11:22:36"},
];
function compare(a, b) {
const startA = new Date(a.startTime).getTime();
const startB = new Date(b.startTime).getTime();
return startA > startB ? -1 : 1;
}
console.log(array.sort(compare));
答案 2 :(得分:0)
感谢@mbojko的答案,因为用户希望使用startB-startA;以不合要求的顺序对数组进行排序;
按降序对日期进行排序-最近的日期排在第一位
.["$link"] == "randomtext1"