gpt4 book ai didi

ios - 通过检查列表是否包含其他列表的元素进行过滤。怎么做?

转载 作者:行者123 更新时间:2023-11-30 12:09:58 28 4
gpt4 key购买 nike

我不知道如何正确创建第一个返回。它会像这样工作,但问题是 searchtestarrayone 总是有不同的长度,而且它可能非常大。几周前开始了我的 Swift 之旅,所以下面的代码中可能有一些愚蠢的事情,答案可能是显而易见的,请原谅我。

func updateSearchResults(for searchController: UISearchController){

if let searchText = searchController.searchBar.text, !searchText.isEmpty {
transformSearchResult()

filteredBusStopsArray = busStopsArray.filter { (busstop : BusStop) in

if !searchtestarrayone.isEmpty{
return busstop.stopName.lowercased().contains(searchtestarrayone[0]) || busstop.stopName.lowercased().contains(searchtestarrayone[1])
}
else{
return busstop.stopName.lowercased().contains(searchText.lowercased())
}

寻找一些技巧。谨致问候。

最佳答案

如果要返回busstop.stopName是否包含searchtestarrayone的任何值,可以使用contains.where .

if !searchtestarrayone.isEmpty{
return searchTestArrayOne.contains(where: {busStop.stopName.lowercased().contains($0)})
}

如果 searchTestArrayOne 的任何元素包含在 busStop.stopName 中,则返回 true,否则返回 false。 contains(where:) 也会提前退出,只要它找到与闭包匹配的第一个元素,因此只有在没有匹配的情况下才会迭代完整的搜索数组。

另请确保您遵守 Swift 命名约定,即函数和变量名称采用小驼峰命名法。

关于ios - 通过检查列表是否包含其他列表的元素进行过滤。怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46195188/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com