2017-06-16 96 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:更新了答案,你需要將它轉換爲數字,因爲它是日期對象....它可以通過在解析日期之前添加'+ +來完成 –