如何通过存储在索引处的嵌套对象属性对对象数组进行排序?

时间:2019-04-13 08:40:15

标签: javascript arrays nested javascript-objects

我需要按其嵌套属性按降序对对象数组进行排序,但是需要排序的属性却“存储”在属性索引中(不确定那是否是所谓的)。我该如何使用.sort()?

我尝试搜索关于stackoverflow的答案,并且有很多相关主题,但是我找不到此特定答案或我听不懂。.

我尝试了以下代码:

ld

3 个答案:

答案 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"