您好,我有一个包含多个值的数组,我想尝试过滤掉搜索栏的索引。英语术语的一个例子就像。给我名称“Name2”的索引,并通过检查每个索引的第一个值中的所有字符串来执行此操作。
代码:
// Multiple Errors
var receivedList = [["Name1","Apple","Fresh"],["Name2","Orange","Rotten"],["Name3","Pear","Fresh"],["Name4","Grape","Rotten"]]
filteredData = data.filter({$0 == searchBar.text})
filteredData = receivedList.filter({$0 receivedList[1] == searchBar.Text})
//Im not really sure how to use this or if it's even useful
let searchPredicate = NSPredicate(format: "Orange CONTAINS[C] %@", searchText)
let array = (receivedList as NSArray).filtered(using: searchPredicate)
Run Code Online (Sandbox Code Playgroud)
我在这里检查了这些页面。
还有其他一些人,运气不好
如果我正确阅读了问题,您想找到第一个元素与搜索模式匹配的数组的索引。下面演示了如何做到这一点:
var receivedList = [["Name1","Apple","Fresh"],["Name2","Orange","Rotten"],["Name3","Pear","Fresh"],["Name4","Grape","Rotten"]]
var searchText = "Name2"
let index = receivedList.index { $0[0] == searchText }
print(index)
Run Code Online (Sandbox Code Playgroud)
以下将过滤您的列表,使其仅过滤第一个元素包含搜索文本的列表:
let matches = receivedList.filter { $0[0].contains(searchText) }
Run Code Online (Sandbox Code Playgroud)
如果您想要匹配的索引,则可以使用:
let matches = receivedList
.enumerated()
.filter { $0.1[0].contains(searchText) }
.map { $0.0 }
Run Code Online (Sandbox Code Playgroud)