gpt4 book ai didi

arrays - 对键未知的字典数组进行排序

转载 作者:行者123 更新时间:2023-11-28 14:04:11 26 4
gpt4 key购买 nike

我有一组 [[String:SchoolModel]] 类型的字典。键是学校的 ID,然后学校模型包含有关学校的信息,例如其名称。我想按 SchoolModel.name 对这个数组进行排序,但不知道如何排序,因为我的键是数组中每个元素的唯一 ID。

struct SchoolModel {
var name: String
var city: String
var state: String
}

最佳答案

您可以访问迭代的每个字典的第一个值以获取名称。

struct SchoolModel {
var name: String
var city: String
var state: String
}

let schools: [[String:SchoolModel]] = [
["1": SchoolModel(name: "1", city: "a", state: "x")],
["2": SchoolModel(name: "2", city: "b", state: "y")],
["3": SchoolModel(name: "3", city: "c", state: "z")]
]

print(schools.sorted {
guard
let a = $0.values.first?.name,
let b = $1.values.first?.name else { return false }

return a < b
})

但是,您应该考虑将 id 属性添加到您的结构中。您可以将其设为可选,这样您仍然可以启动尚未创建的 SchoolModel

struct SchoolModel {
var id: String?
var name: String
var city: String
var state: String
}

然后,在填充字典数组的任何位置,附加 SchoolModel 对象,而不是将其嵌入到字典中,从而生成类型为 [SchoolModel] 的数组。

关于arrays - 对键未知的字典数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53194298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com