如何在不同的数组中找到相同的元素 Swift

How to find same elements in different arrays Swift

假设我有一个对象模型。我将这些对象放入一个数组中。我在 TableView 中显示这些项目。然后我使用 SearchController 过滤这个数组并将过滤后的元素放在另一个数组中并在搜索中显示它,然后我 select 一些行。然后我取消搜索并显示第一个数组,但我希望包含我在搜索中 selected 的元素的行在其中突出显示(来自第二个数组的元素)。据我了解,我需要比较两个数组并在其中找到相同的元素并获取该元素的索引,然后将该元素的索引传递给 didSelectRow。我该怎么做?

struct Model {
   var fileName: String
   var url: String
   init(fileName: String, url: String){
     self.fileName = fileName
     self.url = url
   }
}
let model1 = Model(fileName: "fileOne", url: "/path/fileOne")
let model2 = Model(fileName: "fileTwo", url: "/path/fileTwo")
let model3 = Model(fileName: "fileThree", url: "/path/fileThree")
let model4 = Model(fileName: "fileFour", url: "/path/fileFour")
...
let array: [Model] = [model1, model2, model3, model4]
var sortedArray: [Model] = []
...
//After search 
sortedArray = [model3, model4]
...
//I select element model3, in the sortedArray it has index 0, 
//but, let's say, I don't know what index doest it have in "array", how can I get it?
//I'd like to compare items by URL

使用 Array.firstIndex(where:) 其中 returns 与 bool 返回闭包中的条件匹配的元素的第一个索引或 nil 如果没有。

guard let interestingIndex = array.firstIndex(where: { [=10=].url == model3.url })
    else { /* something's gone wrong */ }

当然,您最好将 url 声明为实际的 URL