Swift 中按键对字典排序

Dai*_*cat 1 arrays sorting dictionary swift

我有一个类型的字典[Int : String],我想按键排序,然后将其转换为数组。例如:

let dict : [Int : String] = [18 : "Maya", 13 : "Ori", 49 : "Mom", 21 : "Lital", 51 : "Dad"]
// After convertion:
// ["Ori", "Maya", "Lital", "Mom", "Dad"]
Run Code Online (Sandbox Code Playgroud)

我怎么做?我只知道如何dict通过执行转换为数组Array(dict.values),但它并没有以正确的顺序进行转换。

谢谢

Dáv*_*tor 5

Dictionary已经有一个sorted方法采用定义排序函数的闭包。您可以按闭包中的键进行排序,然后简单地映射结果元组以仅获取值。

let sortedDictKeys = dict.sorted(by: { $0.key < $1.key }).map(\.value)
Run Code Online (Sandbox Code Playgroud)