是否可以在字典上使用.filter返回只包含过滤值的字典?
如果我理解你的问题,你需要[String:[Object]]字典的键,其中每个Object都有一个name属性,并且该属性具有给定值.struct Obj { let name: String}let o1 = Obj(name: "one")let o2 = Obj(name: "two")let o3 = Obj(name: "three")let dict = ["a": [o1,o2],"b": [o3]]
现在假设您想要一个对象具有“两个”名称的字典键:
过滤解决方案
let filteredKeys = dict.filter { (key,value) in value.contains({let filteredKeys = dict.flatMap { (str,arr) -> String? in if arr.contains({.name == "two" }) }.map { .0 }print(filteredKeys)var filteredKeys = [String]()for (key,value) in dict { if value.contains({ .name == "two" }) { filteredKeys.append(key) }}print(filteredKeys).name == "two" }) { return str } return nil}print(filteredKeys)
使用flatMap和包含的解决方案
带循环的解决方案
总结以上是内存溢出为你收集整理的swift – 使用数组作为值过滤字典全部内容,希望文章能够帮你解决swift – 使用数组作为值过滤字典所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)