如何使用过滤器等Swift函数优化代码? 我想要做的是我需要找到一个特定的密钥,如果存在,无论该密钥在下面的数组中有什么价值?
下面的方法对我来说很好,但我认为还有更好的方法。
let arrDic = [["Key1": "yes"], ["Key2": "no"], ["Key3": "yes"], ["Key4": "Option1, Option2"], ["Key5": "OC1_OPTIONB"], ["Key6": "H1_OPTIONA"]]
for dict in arrDic {
if dict["Key1"] != nil {
print(true)
break
}
}
答案 0 :(得分:0)
let arrDic = [["Key1": "yes"], ["Key2": "no"], ["Key3": "yes"], ["Key4": "Option1, Option2"], ["Key5": "OC1_OPTIONB"], ["Key6": "H1_OPTIONA"]]
let result = arrDic.filter { $0["Key1"] != nil }.first
对不起,没有注意到意图,然后添加
print(result != nil)
甚至更短
let isPresent = arrDic.filter { $0["Key1"] != nil }.isEmpty
甚至
let isPresent = arrDic.contains { $0["Key1"] != nil }
答案 1 :(得分:0)
您可以使用与contains
的自定义匹配来搜索项目:
if arrDic.contains(where: {(dict) -> Bool in
return dict["Key1"] != nil
}) {
print(true)
}