问题描述
您可以像这样过滤数组:
let results = objarray.filter { $0.id == 1 }
它将返回匹配闭包中指定条件的元素数组-在上述情况下,它将返回包含所有id
属性等于1的元素的数组。
由于您需要布尔结果,因此只需执行以下检查:
let exists = results.isEmpty == false
exists
如果过滤后的数组至少包含一个元素,则为true
解决方法
我试图检查对象数组中是否存在特定项目(属性值),但找不到任何解决方案。请让我知道,我在这里想念的是什么。
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")
}