Swift - 检查一个值是不是在数组中

Posted

技术标签:

【中文标题】Swift - 检查一个值是不是在数组中【英文标题】:Swift - Check if a value belongs is in an arraySwift - 检查一个值是否在数组中 【发布时间】:2020-07-23 18:58:16 【问题描述】:

我有一个“用户”类型的数组,我想检查一个值是否属于某个属性类型。 我的代码:

   struct User: Identifiable 
        
        var id = UUID()
        var name: String
        var age: String
    

    var array: User = [
        User[name: "AZE", age: "10"]
        User[name: "QSD", age: "37"]
    ]

例如,我想知道“AZE”是否属于属性数组“name”。检索此信息的功能是什么。希望您能理解我的问题并感谢您的回答。

【问题讨论】:

【参考方案1】:

首先,arrays 用[Type] 定义,比如[User]

所有init 方法调用中的第二个,就像(Arguments) 一样User(name: ,age:)

最后但同样重要的是,不要忘记数组元素之间的“,”。

所以

struct User: Identifiable 
    var id = UUID()
    var name: String
    var age: String


var array: [User] = [
    User(name: "AZE", age: "10"),
    User(name: "QSD", age: "37")
]

所以现在你可以用contains 来检查你的元素了

array.contains(where:  user in user.name == "AZE" ) // returns `true` if it is

提示

尝试名称arrays 而不是数组。改用复数名称,例如users


返回找到的:

users.first(where:  user in user.name == "AZE" ) 

总结一下

users.first  $0.name == "AZE"  

【讨论】:

如果现在我想通过只访问“名称”来检索这个对象,例如创建一个新变量,你知道如何继续吗? 你应该使用users.first(where: user in user.name == "AZE" )

以上是关于Swift - 检查一个值是不是在数组中的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3 + Firebase:检查数组内的值是不是存在?

这是否可以检查swift数组中的所有值是否为真而不是逐个循环?

UserDefaults swift作为数组检查值是不是存在

如何在 Swift 中检查我的数组索引是不是超出范围

如何检查一个元素是不是在数组中

在 Swift 中检查 2 个固定大小的数组是不是相等的最快方法是啥?