ruby - 在 Ruby 中对哈希数组进行排序(按存在可选键+值排序)

标签 ruby arrays hash sorting

得到一个像这样的 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/

相关文章:

java - 在java中使用数组陷入困境

java - 获取servlet中posted数组的值

php - 哈希密码功能无法正常工作

ruby - 猴子修补 ruby​​ 类的推荐方法

ruby-on-rails - 如何使用 3 个或语句编写 Pundit 策略?

ruby - ruby 中的模拟系统调用

ruby - 在散列中的数组中查找值的键

ruby - 使用 Sinatra 模块化样式为每个实例而不是每个请求创建一个变量

PHP - 获取正则表达式结果的行号

jQuery scrollTo 不工作的 body ,html 设置 100%