我正在为我的应用程序制作一个搜索栏。我正在使用filter
方法来得到结果。我想通过多个键进行搜索。
字典数组:
var people = [
["First": "John", "Last": "Doe"],
["First": "Steve", "Last": "Jobs"],
["First": "Elon", "Last": "Musk"]
]
我只能使用以下代码搜索“First”或“Last”,但不能同时搜索两者:
searchResults = people.filter{
var string = $0["Last"]
// or "First"
string = string?.lowercaseString
return string!.rangeOfString(searchText.lowercaseString) != nil
}
一种方法是简单地将两个字段与搜索字符串进行比较:
var people = [
["First": "JohnMusk", "Last": "Doe"],
["First": "Steve", "Last": "Jobs"],
["First": "Elon", "Last": "Musk"]
]
var searchText = "Musk"
var searchResults = people.filter{
var firstName = $0["First"]!.lowercaseString
var lastName = $0["Last"]!.lowercaseString
return firstName.rangeOfString(searchText.lowercaseString) != nil
|| lastName.rangeOfString(searchText.lowercaseString) != nil
}
这给了我这个结果:
2015-11-18 18:19:47.691 MyPlayground[36558:7031733] (
{
First = JohnMusk;
Last = Doe;
},
{
First = Elon;
Last = Musk;
}
)
我相信这就是你想要的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)