2010-10-04 183 views
14

我知道這一定是相對簡單的,但我有一個JSON數據集,我想按日期排序。到目前爲止,我遇到了問題。 現在我把日期存儲爲this.lastUpdated。 我有權訪問jquery,如果有幫助,但我意識到.sort()是本機JS。 在此先感謝。按日期排序JSON

+0

你的日期字段是什麼格式? – orolo 2010-10-04 21:26:21

+2

看這裏類似的問題http://stackoverflow.com/questions/979256/how-to-sort-a-json-array – 2010-10-04 21:27:37

+0

JSON是一個序列化格式(字符串)。我不認爲你可以做任何事情,直到你將它轉換爲對象(eval或自定義js框架函數)。 – 2010-10-04 21:29:39

回答

29

假定有JavaScript對象的陣列,只是使用自定義排序功能:

function custom_sort(a, b) { 
    return new Date(a.lastUpdated).getTime() - new Date(b.lastUpdated).getTime(); 
} 
var your_array = [ 
    {lastUpdated: "2010/01/01"}, 
    {lastUpdated: "2009/01/01"}, 
    {lastUpdated: "2010/07/01"} 
]; 

your_array.sort(custom_sort); 

的陣列sort方法排序使用傳遞對數組中的元素的回調函數的陣列。

  • 如果返回值是負的,第一個參數(a在這種情況下),將先於排序後的數組中的第二個參數(b)。
  • 如果返回值爲零,則它們相對於彼此的位置保持不變。
  • 如果返回值爲正數,b在排序後的數組中排在a之前。

您可以通過sort方法here瞭解更多信息。

+0

反序列化的JSON是一個非數組對象。 '.sort()'只適用於數組。 – 2010-10-05 00:40:42

+0

對不起!這是一場意外。當我點擊頁面時我沒有注意,現在我無法改變它。 – Whitecat 2017-11-23 17:42:46

+0

不用擔心,謝謝你的解釋! – 2017-11-26 02:28:42