一尘不染

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

swift

我试图检查对象数组中是否存在特定项目(属性值),但找不到任何解决方案。请让我知道,我在这里想念的是什么。

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

阅读 390

收藏
2020-07-07

共1个答案

一尘不染

您可以像这样过滤数组:

let results = objarray.filter { $0.id == 1 }

它将返回匹配闭包中指定条件的元素数组-在上述情况下,它将返回包含所有id属性等于1的元素的数组。

由于您需要布尔结果,因此只需执行以下检查:

let exists = results.isEmpty == false

exists 如果过滤后的数组至少包含一个元素,则为true

2020-07-07