得到一个像这样的 Ruby 数组:
[ { "lat" => 123, "lon" => 456 },
{ "lat" => 789, "lon" => 102, "col" => "red" },
{ "lat" => 442, "lon" => 342 } ]
我想对其进行排序,以便将 任何 以 col
为键的散列推到数组的顶部或底部。
无法找出正确的 sort_by
语法/语义。
最佳答案
a = [ { "lat" => 123, "lon" => 456 },
{ "lat" => 789, "lon" => 102, "col" => "red" },
{ "lat" => 442, "lon" => 342 } ]
如果你想把它们放在最上面,那么
a.partition{|h| h.key?("col")}.flatten
如果你想把它们放在底部,那么按照铁皮人的建议,
a.partition{|h| h.key?("col").!}.flatten
关于ruby - 在 Ruby 中对哈希数组进行排序(按存在可选键+值排序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16140351/