Nas*_*sif 4 xcode dictionary filter ios swift
我是斯威夫特的新手,我有一个新项目.我正在尝试搜索功能.我有一个字典数组,包含firstName和lastName作为键,我需要根据包含搜索字符串的firstName过滤掉人员
let nameList : [Dictionary<String,String>] =
[["firstName" : "John Sam","lastName" : "Smith"],
["firstName" : "Johnny","lastName" : "Smith"],
["firstName" : "Albert","lastName" : "Smith"],
["firstName" : "Alby","lastName" : "Wright"],
["firstName" : "Smith","lastName" : "Green"]]
Run Code Online (Sandbox Code Playgroud)
在目标C中我可以很容易地做到
[NSPredicate predicatewithformat:"firstName contains[c] %@",searchText]
Run Code Online (Sandbox Code Playgroud)
我也明白同样的谓词可以在Swift上完成.但我正在寻找一个等效的Swift,这样我就可以获得如何使用map和filter.任何帮助赞赏
Mar*_*n R 12
"CONTAINS[c]"可以rangeOfString()使用以下.CaseInsensitiveSearch选项实现与谓词运算符对应的搜索:
let searchText = "MITH"
let filtered = nameList.filter {
return $0["firstName"]?.rangeOfString(searchText, options: .CaseInsensitiveSearch) != nil
}
// Result: [[firstName: Smith, lastName: Green]]
Run Code Online (Sandbox Code Playgroud)
斯威夫特3:
let filtered = nameList.filter {
return $0["firstName"]?.range(of: searchText, options: .caseInsensitive) != nil
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8399 次 |
| 最近记录: |