【发布时间】:2019-05-15 06:39:42
【问题描述】:
我正在努力使用 map 和 filter 设置一个高阶函数来创建一个包含数组的数组。我现在一直在为每个循环使用艰难的方式。 肯定有更好的办法。希望有人可以提供帮助。
我知道datasource.map{$0.category} 之类的简单事情,但正在努力走得更远。
var categoryDatasource: [[Kreisel]] = [[Kreisel]]()
// METHODS
convenience init(datasource: [Kreisel]) {
self.init()
var categories = [String: [Kreisel]]()
for kreisel in datasource {
if var val = categories[kreisel.category] {
val.append(kreisel)
categories[kreisel.category] = val
} else {
categories[kreisel.category] = [kreisel]
}
}
categories.forEach { (key, value) in
categoryDatasource.append(value)
}
}
【问题讨论】:
标签: swift higher-order-functions