从数组中搜索 & 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:
我正在为 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: