Я изо всех сил пытаюсь установить функцию более высокого порядка, используя карту и фильтр, чтобы создать массив, который содержит массивы. Я делал это сейчас трудным путем, используя для каждого цикла.
Должен быть лучший способ. надеюсь, кто-то может помочь.
Я знаю о таких простых вещах, как 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)
}
}