我在词典方面遇到麻烦。
例如,
我当前的数据
["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] 删除。
我来说两句