SwiftUI Сортировать массив пользовательских объектов по идентификатору - PullRequest
0 голосов
/ 03 апреля 2020

// Person Struct

struct Person {
            var id: Int
            var age: Int
            var nPerson: [Person]
        }

// Тип массива Person

 var persons = [

        Person(id: 123, age: 23, nPerson: []),
        Person(id: 421, age: 45, nPerson: [

            Person(id: 100, age: 13, nPerson: [
            Person(id: 5, age: 23, nPerson: []),
            Person(id: 112, age: 89, nPerson: []),
            ]),
            Person(id: 42, age: 33, nPerson: []),
            Person(id: 112, age: 73, nPerson: []),
            Person(id: 126, age: 23, nPerson: []),

        ]),

        Person(id: 343, age: 5, nPerson: [

            Person(id: 22, age: 109, nPerson: []),
            Person(id: 421, age: 102, nPerson: []),
            Person(id: 141, age: 12, nPerson: []),
            Person(id: 136, age: 54, nPerson: []),

        ])

    ]

У меня есть объект Person внутри человека, у меня есть id и nPerson и что nPerson является типом Person. Я хочу отсортировать массив по идентификатору, чтобы сортировка работала внутри массива nPerson.

1 Ответ

1 голос
/ 04 апреля 2020

Вы можете использовать встроенную функцию сортировки Swift для архивирования.

let sortedPersons = persons.sorted {$0.id < $1.id}.map { (person) -> Person in

         var tempPerson = person
         let shortednPersons = (person.nPerson).sorted { $0.id < $1.id }
         tempPerson.nPerson = shortednPersons

         return tempPerson

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