2016-11-04 71 views
0

我正在嘗試重構按日期排序的json響應。如何在React Native中按日期進行分組

這裏是例子的Json我:

"data": [ 
    { 
    "game_id": "728721", 
    "game_date": "2016-11-03 20:25:00", 
    }, 
    { 
    "game_id": "728722", 
    "game_date": "2016-11-06 13:00:00", 
    } 
] 

我想顯示日期在我的列表視圖分組部分。

+0

這與React本機有什麼關係?聽起來你只是想改變數據結構。如果是這樣,請提供一個您希望看到的數據結構的示例 –

+0

我不確定您是否想要按(按日期排序)或按日期排序(按時間順序排列,還是相反)對於這個問題)。 –

+0

羅布,這裏是JSON結構在尋找: 必需的JSON格式數據 = { 「日期1」:[{ // 遊戲數據對象1 },{ // 遊戲數據對象2 } , { //遊戲數據對象3 },{ // 遊戲數據對象4 }], 「日期2」:[{ // 遊戲數據對象5 },{ // 遊戲數據對象6 }, { //遊戲數據對象7 }] }; 實際JSON格式數據 = [{ // 遊戲數據對象1 },{ // 遊戲數據對象2 },{ // 遊戲數據對象3 } ] – Vinay

回答

0

這看起來並不特定於React Native開發。也許嘗試lodash#groupBy

+0

您好亞當 看看這個代碼,這是我有,但拋出一個錯誤: var grouped = _.groupBy(response.data.results.data,function(item){ console.tron.log(item.game_data) return item.game_date; }); – Vinay

+0

謝謝你的回覆。時刻「groupBy」的作品。這就是我所做的。 var groupedByDate = _.groupBy(response.data.results.data,function(item){ var dateMoment = moment(item.game_date); return dateMoment.day(String).format('LL') }) ; – Vinay

+0

不錯!我很高興爲你工作。檢查lodash解決問題的方法通常對我有幫助。 –

1

純JavaScript的方法,沒有圖書館

由於您的日期時間數據包含實際的字符串,一個海峽進可串入的日期和時間,然後依次通過根據每一個項目,並將它們組合的拆分迄今爲止的關鍵。以下是一個示例(我沒有經過測試,但它應該可以工作):

var groupData = (data) => { 
    let result = [] 

    for (var d in data) { 
     // get date from data 
     var date = d.game_date.split(' '); 

     // add into new array and use key as the date 
     if (!result[date]) { 
      result[date] = [d] 
     } else { 

      // if key already existed, extend into group 
      result[date].push(d) 
     } 
    } 

    return result; 
} 
相關問題