struct User{
var firstName:String
var lastName:String
var city:String
var email:String
}
var users = [User]
我正在尝试在文本字段中输入时过滤用户。就像搜索电子邮件一样。它应该显示所有匹配的结果,但不应重复相同的用户。我能够根据一个属性(例如
name
)过滤数组,但不确定如何基于所有属性过滤数组。我已经实现了UITextField代理并使用以下代码进行过滤:
let filteredArray = users.filter({ (user) -> Bool in
return user.firstName.lowercased().contains(“John”)
})
filter()
闭包的含义。你遍历数组,当前元素在这里被命名为user
(这是参数)。然后,根据user
的值,你决定返回true
以保留它,或者返回false
以舍弃它。目前,如果firstName.lowercased()
包含"John",你返回true
。那么,使用OR运算符来检查另一个属性呢? - undefined||
)。如果你只想匹配满足所有条件的项目,请使用和(&&
)。 - undefinedfirstName.range(of: "John", options: .caseInsensitive) != nil
比firstName.lowercased().contains(“John”)
更高效。 - undefined