使用动态键对未排序的词典或词典数组进行排序

时间:2017-11-02 18:51:33

标签: swift dictionary

说我有一个带有动态键的字典,如下所示。

  {
    5 : {
    value : 1000,
    desp : "No Desp"
    },
    1 : {
    value : 1000,
    desp : "No Desp"
    },
    2 : {
    value : 1000,
    desp : "No Desp"
    }
}

我想按如下方式对这个字典进行排序:在一个基于按键升序排序的快速字典中。

 {

    1 : {
    value : 1000,
    desp : "No Desp"
    },
    2 : {
    value : 1000,
    desp : "No Desp"
    }},

    5 : {
    value : 1000,
    desp : "No Desp"
    }


]

2 个答案:

答案 0 :(得分:0)

无法对字典类型进行排序,因此您需要使用数组来执行此操作。

let dict = [1:[value : 1000, desp : "No Desp"], 2: [value : 1000, desp : "No Desp"],3: [value : 1000, desp : "No Desp"]]

dict.sorted(by: { $0.0 < $1.0 })  //do this to sort it by key

结果数据类型是[Int,[String:Int,String:String]]的数组。

答案 1 :(得分:-1)

我之前做过类似的事,

let unsortedDict = Dictioanary<String,Any>

let sortedKeys  = unsortedDict.keys.sorted

var sortedDict = NSMutableDictionary ()

for key in sortedKeys {
let node = unsortedDict[key]
sortedDict.setValue(node,forKey:key)
}

想知道比这更好的方法