同时过滤具有2个条件的数组?

时间:2018-08-24 09:17:53

标签: arrays swift uitableview uisearchbar

我有一个User模型,该模型从数据库下载所有用户,将它们存储在users数组中,并在UITableView中显示它们。在UITableView上方,我有一个UISearchBar,允许用户对其进行过滤。

搜索有效,但是用户拥有usernames_lowercasedisplayName,并且我希望能够为users和{ {1}},将其存储在usernames_lowercase数组中,然后重新加载/显示结果。我无法弄清楚该如何做……如果可能的话,甚至可以用单个数组来完成。

displayName

2 个答案:

答案 0 :(得分:3)

使用|| OR )运算符指定多个条件。

searchUsers = users.filter {
    $0.username_lowercase!.prefix(searchText.count) == trimmedSearchWord.lowercased()
    || $0.displayName!.prefix(searchText.count) == searchText
}

答案 1 :(得分:0)

创建用户模型的另一个副本,并使用searchText,如下所示:

// self.Copied_User_Model->复制的用户模型

// User_Model->原始用户模型

self.Copied_User_Model = []
            for item in self.Copied_User_Model {
                if item.user_name.localizedCaseInsensitiveContains(searchText) != false  item.display_Name.localizedCaseInsensitiveContains(searchText) != false{
                    self.Copied_User_Model.append(item)
                } else {

                }
            }

            self.tableview.reloadData()
            if searchText == "" {
                self.Copied_User_Model = self.User_MOdel
                self.tableview.reloadData()
            }

希望此帮助。 谢谢。