2017-06-16 92 views
0

排序数组这里是我的阵列如何通过日期

arr=[ 
{ 
    date:'2017-06-14 14:03:49' 
}, 
{ 
    date:'2017-04-20 10:25:32' 
}, 
{ 
    date:'2017-06-02 15:57:16' 
}, 
{ 
    date:'2017-06-02 17:52:05' 
}, 
{ 
    date:'2017-06-02 21:47:13' 
}, 
{ 
    date:'2017-06-14 14:01:31' 
} 
] 

我需要按日期排序的数组。

我怎样才能做到这一点,

请咨询我,

感谢

+0

说不上来,如果这是一个确切的副本。在这种情况下,由于日期字符串是ISO 8601,因此比较函数可以简单地'返回a.localCompare(b)',所以根本不需要转换为Date。 – RobG

回答

2

使用Array#sort方法和比较功能解析内通过获取差异相应的字符串,返回值。

var arr = [{ 
 
    date: '2017-06-14 14:03:49' 
 
}, { 
 
    date: '2017-04-20 10:25:32' 
 
}, { 
 
    date: '2017-06-02 15:57:16' 
 
}, { 
 
    date: '2017-06-02 17:52:05' 
 
}, { 
 
    date: '2017-06-02 21:47:13' 
 
}, { 
 
    date: '2017-06-14 14:01:31' 
 
}]; 
 

 
arr.sort(function(a, b) { 
 
    // convert date object into number to resolve issue in typescript 
 
    return +new Date(a.date) - +new Date(b.date); 
 
}) 
 

 
console.log(arr);

请参阅该问题的git:Error when doing arithmetic operations on date

或指:TypeScript sort by date not working

+0

问题显然是重复的。为什么然后回答它... –

+0

@Pranav C Balan感谢您的答复。其实我正在使用typescript.I是得到这个错误左手边的一个算术运算必须是任何类型的。一定建议我 – ANISUNDAR

+0

@ANISUNDAR:更新了答案,你需要将它转换为数字,因为它是日期对象....它可以通过在解析日期之前添加'+ +来完成 –