2016-06-12 4 views
-3

私が期待しているソート結果が得られません。どうしましたか。ここでこのjavascriptのソートの問題

はコードです:

data.sort(function(a,b){ 
    return (Date.parse(a) - Date.parse(b)); 
}); 
for(var j = 0; j < data.length; j++){ 
    var item = data[j]; 
    console.log(j+") " +item.createdAt+":"+Date.parse(item.createdAt)); 
} 

そして、ここでは出力です:dataとして

0) Fri Jun 10 2016 16:58:26 GMT-0400 (Eastern Daylight Time):1465592306000 
1) Tue Jun 07 2016 08:07:34 GMT-0400 (Eastern Daylight Time):1465301254000 
2) Fri Jun 10 2016 15:57:44 GMT-0400 (Eastern Daylight Time):1465588664000 
3) Fri Jun 10 2016 14:34:45 GMT-0400 (Eastern Daylight Time):1465583685000 
4) Fri Jun 10 2016 14:22:02 GMT-0400 (Eastern Daylight Time):1465582922000 
5) Fri Jun 10 2016 11:14:34 GMT-0400 (Eastern Daylight Time):1465571674000 
6) Fri Jun 10 2016 10:03:56 GMT-0400 (Eastern Daylight Time):1465567436000 
7) Fri Jun 10 2016 10:02:58 GMT-0400 (Eastern Daylight Time):1465567378000 
8) Thu Jun 09 2016 16:32:29 GMT-0400 (Eastern Daylight Time):1465504349000 
9) Thu Jun 09 2016 16:29:24 GMT-0400 (Eastern Daylight Time):1465504164000 
+0

ワットは期待しましたか? – Jieter

+2

'return(Date.parse(a.createdAt) - Date.parse(b.createdAt));' return()が必要です。 – Tushar

答えて

1

オブジェクトの配列であり、各オブジェクトが配列のソートされるべきでcreatedAtプロパティが含まれています、あなたが必要です

data.sort(function(a, b) { 
    return (Date.parse(a.createdAt) - Date.parse(b.createdAt)); 
}); 

データがサーバーデータベースから来ている場合は、データベース自体からデータを日付順に取得することをお勧めします。