如何快速根据另一个数组过滤数组?

时间:2020-02-25 17:02:52

标签: ios swift xcode searchbar

在这一点上,我在表格视图中有搜索栏及其搜索顺序ID,我还有另一个数组,其中包含一些根据其顺序ID的数据。我的搜索栏正常工作,已过滤的数组正常工作,但其他数组无效。 (订单ID和订单内容存在冲突)订单的顺序正在变化。如何连接这两个阵列? 这是我的代码:

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: sipCellId, for: indexPath) as! sipCell

    if isSearching {
        searched = filteredArray[indexPath.row]


    }else{
        searched = self.orderId[indexPath.row]

    }


     cell.orderIdLabel.text = searched
     cell.detailLabel.text =  self.newDatas[indexPath.row]



     return cell

}

这里是我的搜索栏功能:

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
    if mainSearchBar.text == nil || mainSearchBar.text == "" {
        isSearching = false
        view.endEditing(true)
        tableView.reloadData()
    }else {
        isSearching = true
        filteredArray = orderId.filter({$0.range(of: mainSearchBar.text!, options: .caseInsensitive) != nil})

        tableView.reloadData()
    }
}

1 个答案:

答案 0 :(得分:0)

您的问题的上下文还不够清楚,您需要澄清更多,但是通常来说,如果您想根据另一个数组的元素来过滤原始数组(按照标题问题),则可以简单地过滤原始数组并询问是否其他数组包含该元素。

originalArray = originalArray.filter{otherArray.contains($0)}