SwiftUI 按 id 对自定义对象数组进行排序
SwiftUI Sort array of custom objects by id
//人物结构
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
的一种类型。
我也想按 id 对数组进行排序,排序将在 nPerson
数组中工作。
您可以使用 Swift 内置排序功能来存档。
let sortedPersons = persons.sorted {[=10=].id < .id}.map { (person) -> Person in
var tempPerson = person
let shortednPersons = (person.nPerson).sorted { [=10=].id < .id }
tempPerson.nPerson = shortednPersons
return tempPerson
}
//人物结构
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
的一种类型。
我也想按 id 对数组进行排序,排序将在 nPerson
数组中工作。
您可以使用 Swift 内置排序功能来存档。
let sortedPersons = persons.sorted {[=10=].id < .id}.map { (person) -> Person in
var tempPerson = person
let shortednPersons = (person.nPerson).sorted { [=10=].id < .id }
tempPerson.nPerson = shortednPersons
return tempPerson
}