这个问题在这里已经有了答案:
How do I sort an array of hashes by a value in the hash?
(4 个回答)
7年前关闭。
@cases => [{"name"=>"25 Cases per 60 day", "count"=>0},
{"name"=>"30 Cases for 60 days", "count"=>8},
{"name"=>"10 Cases per 60 days", "count"=>5}]
如果我有一个包含先前结果的对象,我如何按
count
排序按 DESC 顺序?获取实例变量
cases
我做了ClassName.all.collect{|e| {'name' => e.name, 'count' => e.contracts.count}}
最佳答案
sorted = @cases.sort_by{ |hash| hash['count'] }.reverse
sorted = @cases.sort_by{ |hash| -hash['count'] }
sorted = @cases.sort_by{ |hash| -(hash['count'] || 0) }
第一个是最简单的。
第二个是我会做的。
第三个是如果某些散列缺少“计数”值,您可以做什么。
关于ruby-on-rails - 根据特定键对具有散列元素的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21463879/