Swift 中基于多个属性的过滤数组

Par*_*gon 3 arrays swift

struct User{\n    var firstName:String\n    var lastName:String\n    var city:String\n    var email:String\n}\n\nvar users = [User]\n
Run Code Online (Sandbox Code Playgroud)\n\n

当有人在文本字段中输入时,我试图过滤用户。就像搜索电子邮件一样。它应该显示所有匹配结果,但\xe2\x80\x99 不应该重复同一用户。我能够根据一个属性过滤数组,例如name但不确定如何根据所有属性过滤数组。

\n\n

我\xe2\x80\x99已经实现了 UITextField 委托并具有用于过滤的代码。

\n\n
let filteredArray = users.filter({ (user) -> Bool in\n    return user.firstName.lowercased().contains(\xe2\x80\x9cJohn\xe2\x80\x9d)\n})\n
Run Code Online (Sandbox Code Playgroud)\n

flo*_*len 5

let filteredArray = users.filter({ $0.firstName.lowercased().contains("firstName") || $0.lastName.lowercased().contains("lastName") || ... })
Run Code Online (Sandbox Code Playgroud)