2012-07-12 75 views
0

我想通過他們的日期屬性使用Async.sortBy,從最近到最舊的對象的數組。一些googleing表明,我通過在回調中傳遞obj.date * -1而不是obj.date來顛倒排序順序,但是這並沒有達到預期的效果。很明顯,因爲那只是NaN的結果。升序與降序排列順序與Async.js sortBy

我的日期以2012-07-12的形式使用今天的日期爲例。

對不起,代碼示例的簡潔和缺乏,我現在正在iPad上的道路上。

我可以扭轉排序的輸出數組我猜,但這不是一個特別好的解決方案。

[{title: "title", date: "2012-07-12"}, {title: "title2", date: "2011-07-12"}] 
+0

從你的問題我知道你有你的日期字段的字符串格式。那是對的嗎? – enriclluelles 2012-07-12 21:51:55

+0

是的。它是一個JavaScript對象數組,每個對象都具有字符串格式值「key」的關鍵字,yyyy-mm-dd – 2012-07-12 23:21:31

回答

0

這個解決方案呢?

async.sortBy([{title: "title", date: "2012-07-12"}, {title: "title2", date: "2011-07-12"}], function(myObject, callback){ 
    return parseInt(myObject.date.split('-').join(''), 10) * -1; 
}, function(err, results){ ... }); 

將日期字符串轉換爲可排序的整數,並通過與-1相乘來反轉它。

+0

這適用於某些性能測試。 – 2012-07-15 22:21:54

+0

http://jsperf.com/austinyun-test1 array.reverse vs parseInt的性能測試。 array.reverse比較快,並且具有縮短的好處。 – 2012-07-15 22:48:14