如何按键对字典数组进行排序?
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()
})
我期待高阶函数输出。 (我可以手动实现)
您的代码正在对字典键进行排序,但您应该做的是对数组、by[进行排序=28=] 存在单个字典键。如您所见,输出数组中的字典被重新排列,这就是为什么您应该对数组而不是字典进行排序。
otpInputView.enteredValues.sorted {
...
}
现在我们有了字典 [=13=]
和 </code>,我们想比较它们的单键(假设所有字典只有一个键)。我们可以通过:</p>
<pre><code>otpInputView.enteredValues.sorted {
[=11=].keys.first! < .keys.first!
}
这按字典顺序对键进行排序。这些键似乎都是数字。如果是这种情况,并且如果你希望它们是数字,请先将它们解析为 Int
s:
otpInputView.enteredValues.sorted {
Int([=12=].keys.first!)! < Int(.keys.first!)!
}
我在这里使用了很多 !
因为我对字典的键做了很多假设。如果您不能做出这些假设,请安全地解开这些可选值并返回默认值。
我正在尝试对字典数组进行排序,但无法做到。
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()
})
我期待高阶函数输出。 (我可以手动实现)
您的代码正在对字典键进行排序,但您应该做的是对数组、by[进行排序=28=] 存在单个字典键。如您所见,输出数组中的字典被重新排列,这就是为什么您应该对数组而不是字典进行排序。
otpInputView.enteredValues.sorted {
...
}
现在我们有了字典 [=13=]
和 </code>,我们想比较它们的单键(假设所有字典只有一个键)。我们可以通过:</p>
<pre><code>otpInputView.enteredValues.sorted {
[=11=].keys.first! < .keys.first!
}
这按字典顺序对键进行排序。这些键似乎都是数字。如果是这种情况,并且如果你希望它们是数字,请先将它们解析为 Int
s:
otpInputView.enteredValues.sorted {
Int([=12=].keys.first!)! < Int(.keys.first!)!
}
我在这里使用了很多 !
因为我对字典的键做了很多假设。如果您不能做出这些假设,请安全地解开这些可选值并返回默认值。