【问题标题】:How do I sort a nested array in Swift 5?如何在 Swift 5 中对嵌套数组进行排序?
【发布时间】:2019-10-29 14:27:15
【问题描述】:

`我不知道如何对名字中的人进行排序。任何帮助将不胜感激。

我似乎无法正确使用 sort 或 sorted 的参考

import SwiftUI

struct family: Codable, Identifiable {
    var id: Int
    var names: [people]
}
struct people: Codable, Identifiable {
    var id: Int
    var name: String
}
let fam = family(id: 1, names: [people(id: 1, name: "john"),
                              people(id: 2, name: "jane"),
                              people(id: 0, name: "mark"),
                              people(id: 3, name: "joe"),
                              people(id: 4, name: "carol")
                              ])
print(fam.names[0])
print(fam.names[1])
print(fam.names[2])
print(fam.names[3])
print(fam.names[4])

我想按 id 或 name 排序。

【问题讨论】:

  • 这并不是真正的嵌套数组(通常是指数组中的嵌套数组)。它只是一个存储在结构中的值。但这只是一个值,没什么特别的

标签: arrays swift sorting nested


【解决方案1】:

只需使用sorted(by:)

fam.names.sorted(by: { $0.id > $1.id })

【讨论】:

  • 如果 fam 是一个数组呢?
【解决方案2】:

如果您想在 fam 对象中排列您的名称数组,您首先需要将其更改为 var 声明

var fam = family(...

然后你可以申请sort(by:),下面的例子按名字升序排序

fam.names.sort(by: {$0.name < $1.name})

【讨论】:

    猜你喜欢
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多