Arrays 搜索整个数组

Arrays 搜索整个数组,arrays,swift,search,filter,Arrays,Swift,Search,Filter,如何实现对所有三个参数的搜索?在搜索OrganizationName时,一切都像do all一样工作?多谢各位 func filterTableView(text:String) { dataArray = initialDataAry.filter({ (mod) -> Bool in return mod.organisationName .lowercased().contains(text.lowercased(

如何实现对所有三个参数的搜索?在搜索OrganizationName时,一切都像do all一样工作?多谢各位

func filterTableView(text:String) {


    dataArray = initialDataAry.filter({ (mod) -> Bool in

            return mod.organisationName
                .lowercased().contains(text.lowercased())
        })
        self.tableView.reloadData()


    if dataArray.count != 0 {

        dataArray = initialDataAry.filter({ (mod) -> Bool in

            return mod.tel1Org

                .lowercased().contains(text.lowercased())
        })
        self.tableView.reloadData()

    }

    if dataArray.count != 0 {

        dataArray = initialDataAry.filter({ (mod) -> Bool in
            return mod.tel2Org
                .lowercased().contains(text.lowercased())
        })
        self.tableView.reloadData()

    }

}

检查一个过滤器内的所有三个字段:

func filterTableView(text:String) {
    let search = text.lowercased()
    dataArray = initialDataAry.filter({ (mod) -> Bool in
        return mod.organisationName.lowercased().contains(search) ||
               mod.tel1Org.lowercased().contains(search) ||
               mod.tel2Org.lowercased().contains(search)

    })

    self.tableView.reloadData()
}

检查一个过滤器内的所有三个字段:

func filterTableView(text:String) {
    let search = text.lowercased()
    dataArray = initialDataAry.filter({ (mod) -> Bool in
        return mod.organisationName.lowercased().contains(search) ||
               mod.tel1Org.lowercased().contains(search) ||
               mod.tel2Org.lowercased().contains(search)

    })

    self.tableView.reloadData()
}

您可以一次对所有字符串使用或比较。这与添加所有字符串并比较结果字符串相同

dataArray = initialDataAry.filter({ (mod) -> Bool in

            let searchString = mod.organisationName + mod.tel1Org + mod.tel2Org

            return searchString
                .lowercased().contains(text.lowercased())

        })
        self.tableView.reloadData()

您可以一次对所有字符串使用或比较。这与添加所有字符串并比较结果字符串相同

dataArray = initialDataAry.filter({ (mod) -> Bool in

            let searchString = mod.organisationName + mod.tel1Org + mod.tel2Org

            return searchString
                .lowercased().contains(text.lowercased())

        })
        self.tableView.reloadData()