如何在 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 中按祖先索引匹配元素