[英]How to sort array of dictionary by key?
我正在嘗試對字典數組進行排序,但無法做到。
JSON 數組: [{"2": "5"}, {"0": "1"}, {"1": "3"}, {"3": "6"}]
預期數組: [{"0": "1"},{"1": "3"},{"2": "5"},{"3": "6"}]
我正在嘗試這個但無法獲得預期的結果。
print(otpInputView.enteredValues.flatMap({ (dic) in
return dic.keys.sorted()
})
我期待高階函數 output。 (手動我可以做到這一點)
您的代碼正在對字典鍵進行排序,但您應該做的是通過存在的單個字典鍵對數組進行排序。 如您所見,output 數組中的字典被重新排列,這就是您應該對數組而不是字典進行排序的原因。
otpInputView.enteredValues.sorted {
...
}
現在我們有了字典$0
和$1
,我們想要比較它們的單個鍵(假設所有字典都只有一個鍵)。 我們可以這樣做:
otpInputView.enteredValues.sorted {
$0.keys.first! < $1.keys.first!
}
這按字典順序對鍵進行排序。 鍵似乎都是數字。 如果是這種情況,並且您希望它們是數字,請先將它們解析為Int
s:
otpInputView.enteredValues.sorted {
Int($0.keys.first!)! < Int($1.keys.first!)!
}
我用了很多!
在這里,我對字典的鍵做了很多假設。 如果您無法做出這些假設,請安全地打開這些選項並使用默認值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.