如何在 React Native 中按日期分组

Posted

技术标签:

【中文标题】如何在 React Native 中按日期分组【英文标题】:How to group by date in React Native 【发布时间】:2016-11-04 19:08:08 【问题描述】:

我正在尝试将我的 json 响应重组为按日期排序。

这是我的 Json 示例:

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

我想在我的列表视图中显示按日期分组的部分。

【问题讨论】:

这和 React native 有什么关系?听起来您只想转换数据结构。如果是这样,请提供您希望看到的数据结构示例 我不确定您是要分组(合并具有相同日期的人)还是按日期排序(按时间顺序排列,或者相反)。 Rob,这是我要查找的 json 结构: 所需的 json 格式 data = "Date 1" : [ // 游戏数据对象 1 , // 游戏数据对象 2 , // 游戏数据对象 3 , // 游戏数据对象 4 ], "Date 2" : [ // 游戏数据对象 5 , // 游戏数据对象 6 , // 游戏数据对象 7 ] ;实际 json 格式 data = [ // 游戏数据对象 1 , // 游戏数据对象 2 , // 游戏数据对象 3 ] 【参考方案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;

【讨论】:

【参考方案2】:

这似乎并不特定于 React Native 开发。也许试试lodash#groupBy

【讨论】:

嗨亚当,看看这段代码,这就是我所拥有的但抛出一个错误:var grouped = _.groupBy(response.data.results.data, function(item) console.tron. log(item.game_data) return item.game_date; ); 感谢您的回复。时刻“groupBy”有效。这就是我所做的。 var groupedByDate = _.groupBy(response.data.results.data, function(item) var dateMoment = moment(item.game_date); return dateMoment.day(String).format('LL') ); 不错!我很高兴这对你有用。检查 lodash 寻找问题的解决方案通常对我很有帮助。

以上是关于如何在 React Native 中按日期分组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 react-native detox 中按祖先索引匹配元素

如何在 MongoDB 中按日期分组

使用 TouchableHighlight 在 React Native 中按下时如何更改按钮颜色?

如何在 SQL 中按多列分组并按日期排序?

如何在另一列中按条件分组的列中查找下一个日期?

在 React Native 中按下回车时如何禁用在多行 TextInput 中插入新行