如何快速检查对象数组中是否存在属性值

问题描述

您可以像这样过滤数组:

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")
        }