2014-06-17 69 views
0

我有一個json object它有一個日期條目。在下面的json對象中有"timestamp"鍵下的日期條目。我正在嘗試將這些日期條目添加到respective month之下。對於exp。如果有從3月份開始的日期,那麼我想在March month下添加這些條目。Javascript組按月json對象

[{ 
    "request":"S034749", 
    "response":"Cardcode : null Is On Hold :null Is on terms : null CreditAvailable : null", 
    "status":"Success", 
    "refID":"6884d5d7-124b-4ab6-83b4-a61c95a16512", 
    "errorMessage":null, 
    "timestamp":"2014-03-13" 
}, 
{ 
    "request":"S034749", 
    "response":"Cardcode : null Is On Hold :null Is on terms : null CreditAvailable : null", 
    "status":"failure", 
    "refID":"e6c3fc16-15d3-461d-bab2-c3a6ea457a4a", 
    "errorMessage":null, 
    "timestamp":"2014-03-13" 
}, 
{ 
    "request":"S034749", 
    "response":"Cardcode : null Is On Hold :null Is on terms : null CreditAvailable : null", 
    "status":"Success", 
    "refID":"1c0c6735-f8ed-415a-a39b-1aca466ffdf0", 
    "errorMessage":null, 
    "timestamp":"2014-03-13" 
}, 
{ 
    "request":"S034749", 
    "response":"Cardcode : null Is On Hold :null Is on terms : null CreditAvailable : null", 
    "status":"failure", 
    "refID":"71a7d08a-a978-4b98-bb14-5f907f0f9135", 
    "errorMessage":null, 
    "timestamp":"2014-03-13" 
}], 
+0

的可能重複[jQuery的:按屬性進行排序JSON(http://stackoverflow.com/questions/ 881510/jquery-sorting-json-by-properties) – Liam

+0

基本上我想顯示數據拋出Graph,因此它不僅顯示錶格或div中的數據。我想在相應的月份顯示所有條目,然後將獲得該月的條目數量。 –

回答

1

遍歷的對象,得到了一個月,追加到一個月的名單。

注:按月份劃分 - 2014年6月將在同一組2013年六月

function group_by_month(data) { 
    var months = {} 
    for (var i=0; i<data.length; i++) { 
     var obj = data[i]; 
     var date = new Date(obj.timestamp); 
     var month = date.getMonth(); 
     if (months[month]) { 
      months[month].push(obj); // already have a list- append to it 
     } 
     else { 
      months[month] = [obj]; // no list for this month yet - create a new one 
     } 
    } 
    return months; 
} 


result = group_by_month(data); 
console.log("Items of January are ", result[0]) 
console.log("Items of February are ", result[1]) 
+0

結果[0]並非總是一月份與您的代碼:) – A1rPun

+0

很好的答案..謝謝它適用於我 –

+0

結果[0]總是列出項目在1月 - (或未定義案件沒有這樣的項目)。我使用Date.getMonth()作爲索引 - 僅在Janurary返回0 – Iftah

0
myArray.sort(function(a, b) { 
    return new Date(b.timestamp) - new Date(a.timestamp); 
}); 

並獲得每年三月,使用濾鏡陣列:

var marchArray = myArray.filter(function(o){ 
    var myDate = new Date(o.timestamp); 
    return myDate.getMonth() === 2; // getDate is zero based 
}) 
+0

我知道標題說「排序」,但閱讀的問題,我認爲他想按月分組的對象 - 沒有必要的排序。 – Iftah

+0

對不起,單詞「排序」 –