在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