如何将日期合并成字典?

哈纳菲·希亚姆(Hanafi Hisyam)

我在词典方面遇到麻烦。

例如,

我当前的数据

["date": "2018-01-01", "name": "New Year"], ["date": "2018-01-31", "name": "Public holiday"],["date": "2018-02-14", "name": "Valentine's Day"], ["date": "2018-02-28", "name": "Public Holiday"]

我该如何转化为

["month": ["January": ["date": "2018-01-01", "name": "New Year"], ["date": "2018-01-31", "name": "Public holiday"]],["February": ["date": "2018-02-14", "name": "Valentine's Day"], ["date": "2018-02-28", "name": "Public Holiday"]]]
瓦迪安

Dictionary有一种方法init(grouping:by:)可以很聪明地做到这一点。

然后将date参数转换为Date,然后将其转换为月份名称DateFormatter

let array = [["date": "2018-01-01", "name": "New Year"],
             ["date": "2018-01-31", "name": "Public holiday"],
             ["date": "2018-02-14", "name": "Valentine's Day"],
             ["date": "2018-02-28", "name": "Public Holiday"]]

let dictionary = Dictionary(grouping: array) { (item) -> String in
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    guard let dateString = item["date"],
        let date = formatter.date(from: dateString) else  { return "Unknown" }
    formatter.dateFormat = "MMMM"
    return formatter.string(from: date)
}

print(["months" : dictionary])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章