【发布时间】:2017-05-10 04:16:18
【问题描述】:
我有这个数组:
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")]
]
我尝试了很多过滤器和地图星座,但我总是得到这个结构:
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"}]
})
这里有什么问题?如何过滤和映射更复杂的对象?
【问题讨论】:
-
首先你的数组是字典,你为什么要把它弄得这么复杂,你不觉得不是用属性键和值来制作类过滤器,你需要用第一个字符来制作它包含第一个较晚的城市和第二个字符串数组,其中包含该对象的所有城市名称。
标签: swift dictionary filter reduce