В Swift 4 как преобразовать вложенный цикл for, проверяющий равенство только одного свойства, в фильтр?
Базовый пример:
// Basic object
struct Message {
let id: String
let content: String
init(id: String, content: String) {
self.id = id
self.content = content
}
}
// Array of objects
let local = [Message.init(id: "1234", content: "test1"), Message.init(id: "2345", content: "test2")]
// Array of objects, one has updated content
let server = [Message.init(id: "1234", content: "testDiff1"), Message.init(id: "3456", content: "test3")]
var foundList = [Message]()
// Nested loop to find based on one property matching
for i in local {
for j in server {
if i.id == j.id {
foundList.append(i)
}
}
}
Это работает, как и ожидалось (foundList содержит local [0]), но кажется, что для этого должен быть быстрый способ?