如何快速按日期对对象数组进行分组? [英] How to group array of objects by date in swift?
本文介绍了如何快速按日期对对象数组进行分组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
需要根据日期分组.来的响应采用排序格式.需要对日期应用过滤器来分组.来自后端的响应:
<预><代码>[{日期":日期1"},{日期":日期1"},{日期":日期1"},{日期":日期2"},{日期":日期2"},{日期":日期3"}]必填:
<预><代码>[["日期": "2017-05-30T12:40:39.000Z",信息": [{日期时间":2017-05-30T12:40:39.000Z}]],["日期": "2017-05-31T05:43:17.000Z",信息": [{日期时间":2017-05-31T05:43:17.000Z},{日期时间":2017-05-31T05:44:15.000Z},{日期时间":2017-05-31T05:44:38.000Z}]]]我检查了多个答案,但找不到好的解决方案.
解决方案
这是我按日期分组的解决方案(仅日、月、年):
let groupDic = Dictionary(grouping: arr) { (pendingCamera) ->日期组件让日期 = Calendar.current.dateComponents([.day, .year, .month], from: (pendingCamera.date)!)归期}
Need to group according to date. Response coming is in sorted format. Need to apply a filter on date to group. Response coming from backend:
[
{
"date": "date1"
},
{
"date": "date1"
},
{
"date": "date1"
},
{
"date": "date2"
},
{
"date": "date2"
},
{
"date": "date3"
}
]
Required:
[
[
"date": "2017-05-30T12:40:39.000Z",
"message": [
{
"date_time": 2017-05-30T12: 40: 39.000Z
}
]
],
[
"date": "2017-05-31T05:43:17.000Z",
"message": [
{
"date_time": 2017-05-31T05: 43: 17.000Z
},
{
"date_time": 2017-05-31T05: 44: 15.000Z
},
{
"date_time": 2017-05-31T05: 44: 38.000Z
}
]
]
]
I have checked multiple answers but wasn't able to find a good solution.
解决方案
This is my solution to group by date(just day, month and year):
let groupDic = Dictionary(grouping: arr) { (pendingCamera) -> DateComponents in
let date = Calendar.current.dateComponents([.day, .year, .month], from: (pendingCamera.date)!)
return date
}
这篇关于如何快速按日期对对象数组进行分组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文