在表视图中过滤二维数组,以便在Swift中进行搜索

时间:2017-03-30 11:43:35

标签: arrays swift uitableview search

我有一个二维数组

fileprivate var Food : [[FoodModel]] = [[]]

Food = [["Apple","Mango"],["Chocolate","Biscuit"]]

和两个部分

let section = ["Fruits","Dry Food"]

表格视图。它很好地展示了价值。现在我添加了一个搜索栏,用于搜索Food的值。我的问题是我无法通过搜索关键字过滤Food。

Food.filter({}) //what to write here?
self.tableView.reloadData()

2 个答案:

答案 0 :(得分:2)

试试这个

let searchString = "Choco"

var result = Food.filter { (dataArray:[FoodModel]) -> Bool in
    return dataArray.filter({ (FoodModel) -> Bool in
        return FoodModel.containsString(searchString)
    }).count > 0
}

答案 1 :(得分:2)

您可以尝试以下方法:

var searchResult = Food.flatMap({ $0 }).filter { $0.lowercased().contains(searchedKeyword) }

首先,flatMap将数组数组展平为单个数组,然后过滤到生成的数组。