[英]Swift how to sort array dictionary by key values
我有一個URL列表,以及從firebase數據庫獲得的各自喜歡的計數,這些列表附加到字典數組中,如下所示:
dictionaryArray = [[1: URL1], [2: URL2], [1: URL3]]
我知道我們可以使用.sort來對字典數組進行排序,但是這樣可以刪除具有類似鍵的字典。
我如何對其進行排序,以便獲得按其鍵排序的url數組:
urlArray = [URL2, URL1, URL3]
因為URL2具有較高的密鑰,而URL1和URL3具有相似的密鑰
您可以使用sorted和flatMap嵌套在一起的高階函數,如下所示:
let sortedURLs = dictionaryArray
.sorted(by: { $0.keys.first! > $1.keys.first! })
.flatMap({ $0.values.first! })
注意:提防強制展開的選件,它在這里起作用,但是可能導致異常
您可以使用如下所示的排序描述符進行排序。
var descriptor: NSSortDescriptor = NSSortDescriptor(key: "name", ascending: true)
var sortedResults: NSArray = results.sortedArrayUsingDescriptors([descriptor])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.