У меня есть этот массив:вызова фильтра на комплексном словаре (ассоциативное массив) в быстрых
class Filter {
var key = ""
var value = ""
init(key: String, value: String) {
self.key = key
self.value = value
}
}
let arry = [
"a":[Filter(key:"city",value:"aachen"),Filter(key:"city",value:"augsburg")],
"b":[Filter(key:"city",value:"bremen"),Filter(key:"city",value:"berlin")]
]
, и я хочу, чтобы искать Аугсбурге и удалить его из словаря с функцией фильтра, так что результат выглядит следующим образом:
let arry = [
"a":[Filter(key:"city",value:"aachen")],
"b":[Filter(key:"city",value:"bremen"),Filter(key:"city",value:"berlin")]
]
Я попробовал его с большим количеством фильтров и карты constelations, но я всегда получаю эту структуру как результат:
let arry = [
["a":[Filter(key:"city",value:"aachen")]],
["b":[Filter(key:"city",value:"bremen"),Filter(key:"city",value:"berlin")]]
]
, например, с помощью этого фильтра:
arry.map({ key,values in
return [key:values.filter{$0.value != "augsburg"}]
})
Что здесь проблема? Как фильтровать и отображать более сложные объекты?
Прежде всего, ваш массив - это словарь, и почему вы делаете это настолько сложным, не думаете ли вы вместо того, чтобы создавать класс Filter с ключом и значением свойства, вам нужно сделать его с первым символом, который содержит первый позже города и второго массива String, который содержит все название города для этого объекта. –
Связанные: http://stackoverflow.com/questions/24116271/whats-the-cleanest-way-of-applying-map-to-a-dictionary-in-swift. –