Итак, у нас есть объект с именем parsedDataConversations
, который представляет собой массив объектов с id
и статусом разговора read
.
struct DataConversations {
let identifier: String
let read: Bool
}
Нам нужно identifier
для проверки отношений
Итак, давайте перейдем к точке:
У нас есть второй массив IncludedConversation
объекта с массивом внутри, который являетсяuserIDs
struct IncludedConversation {
let type: String?
let messageID: String?
let id: String?
let usersID: [String?]
}
И мы хотим сравнить массив userIDs
со свойством DataConversations
с именем identifier
.
Кроме того, у нас есть paredUsersArray
, которыйЭто все пользователи для текущего разговора, поэтому, когда мы хотим проанализировать его и создать FinalConversation
объект - в конце мы получаем гораздо больше ненужных объектов.
Вот код: -
parsedDataConversations.forEach { (dataConversation) in
includedConversations.forEach({ (conversation) in
if dataConversation.identifier != conversation.id {
return
}
let users = conversation.usersID.filter { _ in conversation.usersID.contains( DatabaseService.shared.userId ) }
for user in parsedUsers {
if users.contains(user.identifier) {
let people = conversation.usersID.filter { _ in users.contains(user.identifier) }
let lastMessage = lastMessageArray.filter { $0.id == conversation.messageID }.first
let conversation = FinalConversation(identifier: dataConversation.identifier, read: dataConversation.read, people: people, lastMessage: lastMessage?.body)
print(conversation)
}
}
})
}
Как это решить?Как разобрать это лучше?Спасибо!