从数组中搜索 & return 匹配字符串元素的有效方法

Efficient way to search & return matching string elements from an array

我正在为 UITableView 实现搜索功能。 Table 可能包含很多行,因此搜索技术需要高效。如果代码与 Swift5 兼容那就太好了。

我需要一种方法来获取数组中匹配的项目列表。

例如:我有一个包含这些值的数组 "One"、"Two"、"Three"、"Four"、"Five"

如果我搜索 "o" 那么它应该 return "One", "Two", "Four" 作为数组输出

所以我可以用这些新元素填充 UITable视图。

您可以按此方式进行 return 结果数组,这是一种非常有效的搜索方式。代码如下:

代码:

    let filtereddata = searchText.isEmpty ? yourArray : yourArray.filter({(dataString: String) -> Bool in
        // If dataItem matches the searchText, return true to include it
        return dataString.range(of: searchText, options: .caseInsensitive) != nil
    }) //searchText is your "o"(Search text)

    print(filtereddata,"results")

希望对你有所帮助,谢谢

你也可以用这样简单的方法 对于初学者来说很容易理解..:)

var str = ["One","Two","Three","Four"]
var sortedstr = [String]()
for i in 0...str.count-1{
    if str[i].contains("o") || str[i].contains("O"){
        sortedstr.append(str[i])

    }
}

使用谓词是最好的方法。

这里有一个非常有用的link:

https://www.infragistics.com/community/blogs/b/stevez/posts/ios-objective-c-filtering-a-nsarray-using-nspredicate