首页 > 解决方案 > 如何根据键对字典进行排序并在 Swift 中对其各自的值进行排序

问题描述

我有一个字典,其中字符串作为键,int 数组作为值,我需要根据键对字典进行排序,并且数组值也应该进行排序。

var dicNumArray : Dictionary<String , [Int]> = ["q":[4,3,2,1,5],"a":[2,3,4,5,5],"s":[123,123,132,43,4],"t":[0,88,66,542,321]]

我需要的结果是字典本身,它按键排序,并且相应的值也被排序。

标签: swiftdictionaryswift4key-value

解决方案


您可以使用以下方法应用于字典的sorted每个value键值对mapValues

然后,您可以只使用sorted比较字典键的谓词。

let result = dicNumArray.mapValues { $0.sorted() }
                        .sorted { $0.key < $1.key }

这将返回一个键值对元组数组。

由于字典不能按顺序信任,因此使用键值对数组是下一个最佳方法。

我们可以使用.keyand.value来获取各自的值。

result.first?.key     // First key
result.first?.value   // First value

推荐阅读