当前位置: 首页 > 面试题库 >

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

颛孙昆
2023-03-14
问题内容

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

        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的元素的数组。

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

let exists = results.isEmpty == false

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



 类似资料:
  • 问题内容: 在遍历数组时,我需要一些帮助,我会不断卡住或重新发明轮子。 如何检查数组中是否有两个(或多个)相同的名称值?我不需要计数器,只需在数组值不是唯一的情况下设置一些变量即可。请记住,数组长度是动态的,数组值也是动态的。 问题答案: 使用array.prototype.map和array.prototype.some:

  • 我有一个PySpark数据帧,如下所示: 我想在表上进行查找,看看是否存在特定的行。例如,对于,测试,代码应返回,对于,测试,代码应返回。 我试过这个: 不幸的是,这段代码需要很长时间才能执行,而且由于这是一个将执行多次的查找(针对不同的a和B值),我希望有一个更快的方法来完成这项任务。 我正在考虑的其他解决方案有: 将PySpark数据帧转换为Pandas数据帧,因为行查找更快 使用或虽然从我所

  • 问题内容: 我正在检查对象属性是否存在,该变量包含一个持有问题的属性名称。 这是因为它正在寻找但我要它检查 问题答案: 要么 要么 请注意,它不会检查继承的属性,而会。例如,是正确的,但事实并非如此。

  • 问题内容: 如何检查是否具有或的值? 问题答案: 使用? 顺便说一句,您要为键分配一个值两次,因此您的数组将导致一个只有一个值的数组。

  • 如果我有以下对象数组: 是否有一种方法可以在数组中循环,以检查特定用户名值是否已经存在,如果它什么也不做,但如果它不做,则使用所述用户名(和新ID)向数组中添加一个新对象? 谢谢!

  • 问题内容: 如何检查对象在JavaScript中是否具有特定属性? 考虑: 那是最好的方法吗? 问题答案: 我对所给出的答案感到困惑-他们中的大多数都是完全错误的。当然,您可以拥有具有未定义,空值或假值的对象属性。因此,简单地将属性检查减少到甚至更糟,将给您完全误导的结果。 这取决于您要查找的内容。如果您想知道一个对象是否物理上包含一个属性(并且它不是来自原型链的某个地方),那么您就可以这样做。所