簡體   English   中英

Swift如何按鍵值對數組字典排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM