作者:journeylis-1998_246 | 来源:互联网 | 2023-05-24 14:30
我试图检查一个对象数组中是否存在特定项(属性的值),但无法找到任何解决方案.请让我知道,我在这里失踪了什么.
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")
}
Antonio..
63
您可以像这样过滤数组:
let results = objarray.filter { $0.id == 1 }
这将返回一个与闭包中指定的条件匹配的元素数组 - 在上面的例子中,它将返回一个包含id
属性等于1的所有元素的数组.
由于您需要布尔结果,只需执行以下检查:
let exists = results.isEmpty == false
exists
如果过滤后的数组至少有一个元素,则为true
1> Antonio..:
您可以像这样过滤数组:
let results = objarray.filter { $0.id == 1 }
这将返回一个与闭包中指定的条件匹配的元素数组 - 在上面的例子中,它将返回一个包含id
属性等于1的所有元素的数组.
由于您需要布尔结果,只需执行以下检查:
let exists = results.isEmpty == false
exists
如果过滤后的数组至少有一个元素,则为true
2> TheEye..:
在Swift 3中:
if objarray.contains(where: { name in name.id == 1 }) {
print("1 exists in the array")
} else {
print("1 does not exists in the array")
}
3> j_gonfer..:
在Swift 2.x中:
if objarray.contains({ name in name.id == 1 }) {
print("1 exists in the array")
} else {
print("1 does not exists in the array")
}