在Swift中对字典排序

我知道这个话题已经讨论过了,但是我无法解决寻找其他答案的问题,因此,对不起我了!

我需要按键对字典进行排序

codeValueDict = ["us": "$", "it": "€", "fr": "€"]

所以我需要这样的字典

sortedDict = ["fr": "€", "it": "€", "us": "$"]

但是我做不到

我试过了

let sortedKeysAndValues = sorted(dictionary) { $0.0 < $1.0 }

但是在我需要从该字典创建两个数组(键和值)之后,并使用该解决方案

codesArray = sortedKeysAndValues.keys.array

给我错误 ’[((String,String)]]’没有名为’keys’的成员, 因为该解决方案未完全返回字典。

所以我尝试了另一种解决方案:

    let prova = codiceNomeDict as NSDictionary

for (k,v) in (Array(codiceNomeDict).sorted {$0.1 < $1.1}) {

let value = "[\"\(k)\": \"\(v)\"]"

println(value)

}

哪个效果很好,但是我不知道如何创建一个新的 value 字典。

最好的解决方案是什么?如何使其运作?

回答:

sorted上面函数的输出是 。因此,您无法像 那样获得键和值。但是您可以使用map函数来检索那些排序的键和值

返回一个包含source 排序元素的Array

。排序算法不稳定(可以更改isOrderedBefore不能为其建立顺序的元素的相对顺序)。

let codeValueDict = ["us": "$", "it": "€", "fr": "€"]

let sortedArray = sorted(codeValueDict, {$0.0 < $1.0})

print(sortedArray)

let keys = sortedArray.map {return $0.0 }

print(keys)

let values = sortedArray.map {return $0.1 }

print(values)

以上是 在Swift中对字典排序 的全部内容, 来源链接: utcz.com/qa/422285.html

回到顶部