首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何对ruby中的嵌套散列进行排序?

如何对ruby中的嵌套散列进行排序?
EN

Stack Overflow用户
提问于 2018-07-25 04:58:54
回答 2查看 705关注 0票数 1
代码语言:javascript
复制
example_hash = {
  "1" => {"occurence": 12, "display": ""},
  "2" => {"occurence": 15, "display": ""},
  "3" => {"occurence": 16, "display": ""}
}

对于上面给定的嵌套散列,我们如何根据出现值对其进行排序(降序)?结果应该以3,2,1的排序顺序显示键

EN

回答 2

Stack Overflow用户

发布于 2018-07-25 06:24:35

代码语言:javascript
复制
example_hash.sort_by { |_,h| -h[:occurrence] }
  #=> [["3", {:occurrence=>16, :display=>""}],
  #    ["2", {:occurrence=>15, :display=>""}],
  #    ["1", {:occurrence=>12, :display=>""}]]

如果需要散列,则添加.to_h,但通常不希望散列中的键以特定方式排序。

票数 4
EN

Stack Overflow用户

发布于 2018-07-25 05:10:40

在控制台中,如下所示:

代码语言:javascript
复制
example_hash.sort{|a,b| b[1][:occurence] <=> a[1][:occurence]}.to_h

返回以下内容:

代码语言:javascript
复制
{"3"=>{:occurence=>16, :display=>""}, "2"=>{:occurence=>15, :display=>""}, "1"=>{:occurence=>12, :display=>""}}

顺便说一句,我相信你把“occurence”拼错了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51507439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档