Сравнить массив внутри массива с другим массивом внутри массива - JSON: отношения API - PullRequest
0 голосов
/ 20 сентября 2018

Итак, у нас есть объект с именем 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)
            }
        }
    })
}

Как это решить?Как разобрать это лучше?Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...