按日期在表格视图

时间:2018-05-07 17:20:46

标签: arrays swift date filter

我有像这样的json

"myAlert": [{

    "usa_time": "2018-04-27 10:42:45",
    "vs_title": "Kenya ",
    "vs_start_time": "2018-04-29 18:00:00",
    "vs_end_time": "2018-04-29 18:50:00",
    "vs_status": "1",
    "vs_add_time": "2018-04-29 00:00:00"
}, {

    "usa_time": "2018-04-27 10:42:37",
    "vs_title": "Association",
    "vs_start_time": "2018-04-29 14:45:00",
    "vs_end_time": "2018-04-29 15:30:00",
    "vs_status": "1",
    "vs_add_time": "2018-04-29 00:00:00"
}, {
    "usa_time": "2018-04-27 10:42:27",
    "vs_title": "Negotiations ",
    "vs_start_time": "2018-04-28 19:00:00",
    "vs_end_time": "2018-04-28 19:45:00",
    "vs_status": "1",
    "vs_add_time": "2018-04-28 00:00:00"
}, {
    "usa_time": "2018-04-27 10:42:27",
    "vs_title": "Negotiations ",
    "vs_start_time": "2018-04-28 19:00:00",
    "vs_end_time": "2018-04-28 19:45:00",
    "vs_status": "1",
    "vs_add_time": "2018-04-28 00:00:00"
}]

我想将此数据过滤为vs_add_time。如果数据具有相似的vs_add_time,则该日期将变为节,并且具有相同日期的数据将作为字典组合成日期数组。

我想将数据过滤为以下格式:

"myAlert": [
     '2018-04-29': [{
         "usa_time": "2018-04-27 10:42:45",
         "vs_title": "Kenya ",
         "vs_start_time": "2018-04-29 18:00:00",
         "vs_end_time": "2018-04-29 18:50:00",
         "vs_status": "1",
         "vs_add_time": "2018-04-29 00:00:00"
     }, {
         "usa_time": "2018-04-27 10:42:41",
         "vs_title": "Kiyoshi El ",
         "vs_start_time": "2018-04-29 16:00:00",
         "vs_end_time": "2018-04-29 17:30:00",
         "vs_status": "1",
         "vs_add_time": "2018-04-29 00:00:00"
     }, ],
     '2018-04-28': [{
         "usa_time": "2018-04-27 10:42:27",
         "vs_title": "Negotiations ",
         "vs_start_time": "2018-04-28 19:00:00",
         "vs_end_time": "2018-04-28 19:45:00",
         "vs_status": "1",
         "vs_add_time": "2018-04-28 00:00:00"
     }, {
         "usa_time": "2018-04-27 10:42:27",
         "vs_title": "Negotiations ",
         "vs_start_time": "2018-04-28 19:00:00",
         "vs_end_time": "2018-04-28 19:45:00",
         "vs_status": "1",
         "vs_add_time": "2018-04-28 00:00:00"
     }]
 ]

有人能让我走上正轨吗?

提前谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用Dictionary(grouping:by:)作为:

let groupedDict = Dictionary(grouping: myAlert, by: { $0["vs_add_time"]! })

<强>词典(分组:由:)

  

创建一个新字典,其键是给定闭包返回的分组,其值是返回每个键的元素的数组。

     

&#34;值中的数组&#34;新词典的位置每个包含至少一个元素,其元素与源序列的顺序相同。