当前位置:  开发笔记 > IOS > 正文

过滤字符串数组,包括"喜欢"条件

如何解决《过滤字符串数组,包括"喜欢"条件》经验,为你挑选了3个好方法。

如果我的主阵列是["Hello","Bye","Halo"],并且我正在搜索"lo",它将仅过滤数组["Hello", "Halo"].

这就是我尝试过的:

 let matchingTerms = filter(catalogNames) {
        $0.rangeOfString(self.txtField.text!, options: .CaseInsensitiveSearch) !=  nil
    }

它抛出

Type of expression is ambiguous without more context

有什么建议?



1> luk2302..:

contains改为使用:

let arr = ["Hello","Bye","Halo"]
let filtered = arr.filter { $0.contains("lo") }
print(filtered)

产量

["你好","光环"]

感谢@ user3441734指出该功能当然仅在您使用时可用 import Foundation



2> Ashok R..:

在Swift 3.0中

let terms = ["Hello","Bye","Halo"]

var filterdTerms = [String]()


func filterContentForSearchText(searchText: String) {
    filterdTerms = terms.filter { term in
        return term.lowercased().contains(searchText.lowercased())
    }
}


filterContentForSearchText(searchText: "Lo")
print(filterdTerms)

产量

["Hello", "Halo"]


当某人只搜索过滤字符串数组时,他/她将获得答案以及可能更新升级版本中语法的知识
我认为它被要求使用Swift 2,当时它是真实的,现在我们正在使用Swift 3,所以它在这一刻更有价值.
@GhostCat因为像我这样的人来自谷歌寻找Swift 3解决方案:)

3> 小智..:

斯威夫特3.1

let catalogNames = [ "Hats", "Coats", "Trousers" ]
let searchCatalogName = "Hats"

let filteredCatalogNames = catalogNames.filter { catalogName in 
    return catalogName.localizedCaseInsensitiveContains(searchCatalogName)
}

print(filteredCatalogNames)

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有