Javascript 按 dd/mm/yyyy 属性对对象进行排序

Ste*_*phD 2 javascript arrays sorting

我的大部分问题都在这个线程中得到了回答:How Sort Array Date JavaScript dd/mm/yyyy?

但是想知道如果日期在一个对象中怎么办,即

var info = [
  {
    name : 'a',
    date : '01/05/2017'
  },
  {
    name : 'b',
    date : '23/12/2013'
  },
  {
    name : 'c',
    date : '22/01/2015'
  }
]
Run Code Online (Sandbox Code Playgroud)

没有骰子:

 (info.date).sort(function(a, b){
      var aa = a.split('/').reverse().join(),
          bb = b.split('/').reverse().join();
      return aa < bb ? -1 : (aa > bb ? 1 : 0);
  });
Run Code Online (Sandbox Code Playgroud)

谢谢!

Dij*_*Dij 6

由于 info 是一个数组,将 sort 方法应用于 info 和 info.date 并在比较器函数内部比较数组中每个对象的日期值。像这样:

var info = [
  {
name : 'a',
date : '01/05/2017'
  },
  {
name : 'b',
date : '23/12/2013'
  },
  {
name : 'c',
date : '22/01/2015'
  }
]

info.sort(function(a, b){
  var aa = a.date.split('/').reverse().join(),
      bb = b.date.split('/').reverse().join();
  return aa < bb ? -1 : (aa > bb ? 1 : 0);
  });
console.log(info);
Run Code Online (Sandbox Code Playgroud)

  • @kukkuz 不起作用,aa 和 bb 实际上是逗号分隔的字符串。 (2认同)