arrays - UITableView SearchBar过滤查询

标签 arrays swift uitableview filter uisearchbar

我有一个很长的 tableView,可以搜索和过滤结果。

但是,如果我输入字母“i”作为输入, 所有带有字母“i”的单词都会出现。 是否可以通过某种方式进行过滤,使我键入的字母对应于我要过滤的单词的第一个字母。

例如我的数组 ["should not use","Tristan","biscuit","is","should not use"]

如果我搜索单词 "is"

,那个词能自动出现在“biscuit”这个词之前吗?

Expected Result : ["is","biscuit","Tristan"]

最佳答案

您可以使用 filter 和 sorted 函数来获得预期的结果。

import UIKit

    var theArray: [String] = ["biscuit", "Tristan", "is", "iser", "instrument", "look"]
    var keyword: String = "is"

    let result = theArray
        .filter { $0.contains(keyword) }
        .sorted() { ($0.hasPrefix(keyword) ? 0 : 1) < ($1.hasPrefix(keyword) ? 0 : 1) }


    print(result)

输出

["is", "iser", "biscuit", "Tristan"]

关于arrays - UITableView SearchBar过滤查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46987207/

相关文章:

JavaScript:根据数组项中的数字重新排序数组

jquery - 为什么 JQuery 将空数组传递给 MVC Controller ,而不是字符串数组?

ios - 重新排序 tableviewcells,右侧白色 "bar"

arrays - Swift:如何在循环中逐个 rm Alamofire 获取请求

ios - 使用 Sprite Kit 时 View 不在 Window 层次结构中

php - 脏话过滤器不起作用 (php)

javascript - 如果两个数组中的键值匹配,如何组合两个数组对象

swift - Collection View 单元格 subview 框架在重复使用单元格之前不可用

ios - 在 iOS 中将 SKProduct 添加到 NSMutableArray 后出现 SIGABRT 错误

ios - UITableView 中的第一部分从来​​没有正确的内容