如何根据日期对包含键值对的数组进行排序

时间:2019-01-02 12:24:41

标签: javascript angular

下面是数组。 我要做的是根据最新日期对数组进行排序。 因此,基本上,如果您在对id:12进行排序后查看代码,则应该先于id:23

我尝试过

   myArray.sort(function(a, b) {
   return a.date- b.date;
   });

但它不起作用

0:    
{ id: 23
name: "joe"
price: 2300
date: "2018-06-01T09:48:18.000Z"},
1:
{ id: 12
name: "ali"
price: 300
date: "2018-09-01T09:48:1i.000Z"},

2 个答案:

答案 0 :(得分:2)

以下示例说明了如何按日期对数组进行排序

    var array=[{'date':'2018-06-05T09:48:18.000Z'},{'date':'2018-06-01T09:48:18.000Z'},{'date':'2018-04-01T09:48:18.000Z'}];
    array.sort(function(a,b){
      //convert your string into dates
      return new Date(a.date) - new Date(b.date);
    });
    console.log(array)

答案 1 :(得分:1)

通过使用符合ISO 8601的日期,您可以直接将字符串用于与String#localeCompare进行排序。

var array =  [{ id: 23, name: "joe", price: 2300, date: "2018-06-01T09:48:18.000Z" }, { id: 12, name: "ali", price: 300, date: "2018-09-01T09:48:1i.000Z" }];

array.sort(function(a, b) {
    return b.date.localeCompare(a.date); // desc
});

console.log(array);