我有一个URL列表及其从firebase数据库中获取的相应收藏计数,这些数据附加到字典数组中:
dictionaryArray = [[1: URL1], [2: URL2], [1: URL3]]
我知道我们可以使用.sort对字典数组进行排序,但是会删除具有类似键的字典,就像在这种情况下一样。
我如何对其进行排序,以便获得按其键排序的url数组:
urlArray = [URL2, URL1, URL3]
因为URL2具有更高的键,而URL1和URL3具有相似的键
答案 0 :(得分:2)
您可以使用高阶函数sorted和flatMap嵌套在一起,如下所示:
let sortedURLs = dictionaryArray
.sorted(by: { $0.keys.first! > $1.keys.first! })
.flatMap({ $0.values.first! })
注意:注意它在这里工作的强制解包选项,但可能会导致异常
答案 1 :(得分:-1)
您可以使用如下所示的排序描述符进行排序。
var descriptor: NSSortDescriptor = NSSortDescriptor(key: "name", ascending: true)
var sortedResults: NSArray = results.sortedArrayUsingDescriptors([descriptor])