如何解决使用结构数组子集的Swift字典
我正在尝试使用分组从结构数组中创建字典,但运气不佳(我发现了一种遍历每条记录的方式,但希望有一个更优雅的解决方案)...
var eventRecords = [EventRecord]()
结构看起来像这样(用于在CloudKit中存储记录)
public struct EventRecord {
public var evDate: Date
public var evType: Int
public var evMainTxt: String
public var evNote: String?
public var evVal1: Int?
public var evVal2: Int?
}
我希望完成的是一本词典,其中键是evType ,而值是[evMainTxt] 。字典定义为
var suggestionsDict = [Int: [String]]()
我从Dictionary(grouping: eventRecords,by: {$0.evType})
开始,但是我在声明.map
的{{1}}部分苦苦挣扎,因为我只想要EventRecord结构的子集。可以对所有记录进行迭代吗?由于我是新手,因此我们将不胜感激。
解决方法
最简单的方法是使用reduce(into:)
,以便您可以一步一步映射和分组
let suggestionsDict = eventRecords.reduce(into: [:]) {
$0[$1.evType,default: []].append($1.evMainTxt)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。