簡體   English   中英

如何按鍵排序字典數組?

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

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