我试图检查对象数组中是否存在特定项目(属性值),但找不到任何解决方案。请让我知道,我在这里想念的是什么。
class Name { var id : Int var name : String init(id:Int, name:String){ self.id = id self.name = name } } var objarray = [Name]() objarray.append(Name(id: 1, name: "Nuibb")) objarray.append(Name(id: 2, name: "Smith")) objarray.append(Name(id: 3, name: "Pollock")) objarray.append(Name(id: 4, name: "James")) objarray.append(Name(id: 5, name: "Farni")) objarray.append(Name(id: 6, name: "Kuni")) if contains(objarray["id"], 1) { println("1 exists in the array") }else{ println("1 does not exists in the array") }
您可以像这样过滤数组:
let results = objarray.filter { $0.id == 1 }
它将返回匹配闭包中指定条件的元素数组-在上述情况下,它将返回包含所有id属性等于1的元素的数组。
id
由于您需要布尔结果,因此只需执行以下检查:
let exists = results.isEmpty == false
exists 如果过滤后的数组至少包含一个元素,则为true
exists