数据数组过滤中的“或”语句

时间:2017-04-05 05:25:16

标签: ios arrays swift sorting

我正在创建一个过滤语句来检查用户的firebase节点中是否有某个位置。

我正在使用的数组是

var users = [User]()

这是存储我所有用户的地方

我通过三种选择过滤它们:“firstLocation”,“secondLocation”和“thirdLocation”

我能够使用

成功过滤掉我的用户数组
self.users = self.users.filter{(($0.firstLocation?.contains(self.passedLocation!))!)}

然后附加

self.users.append(user)
self.tableView.reloadData()

这基本上运行数组并过滤我的用户,他们的firstLocation firebase节点中有我的passLocation。现在问题来了,当我必须完成其他两个选择:“secondLocation”和“thirdLocation”

我试图通过使用像这样的“或”语句

来做到这一点
self.users = self.users.filter{(($0.firstLocation?.contains(self.passedLocation!))!)} || self.users.filter{(($0.secondLocation?.contains(self.passedLocation!))!)}

但是我收到错误“无法使用类型为”

的参数列表调用'过滤器'

所以我问的是,有没有办法可以检查字符串传递位置的所有三个位置,然后过滤我的用户,如果其中一个检查出现匹配

1 个答案:

答案 0 :(得分:3)

您只需要一个过滤器内部带有“或”的过滤器。

self.users = self.users.filter{(($0.firstLocation?.contains(self.passedLocation!))!) || (($0.secondLocation?.contains(self.passedLocation!))!)}