我有一个哈希,我已经使用值对它进行了排序
@friends_comment_count.sort_by{|k,v| -v}
Run Code Online (Sandbox Code Playgroud)
现在我只想得到前五个元素的哈希值.一种方法是使用一个计数器并在它的时候中断5.什么是红宝石的首选方法?
谢谢
Mar*_*oda 31
h = { 'a' => 10, 'b' => 20, 'c' => 30 }
# get the first two
p Hash[*h.sort_by { |k,v| -v }[0..1].flatten]
Run Code Online (Sandbox Code Playgroud)
编辑:
# get the first two (more concisely)
p Hash[h.sort_by { |k,v| -v }[0..1]]
Run Code Online (Sandbox Code Playgroud)
Tri*_*ulo 19
你不能只做这样的事情:
h = {"test"=>"1", "test2"=>"2", "test3"=>"3"}
Run Code Online (Sandbox Code Playgroud)
然后,如果你想要前2:
p h.first(2).to_h
Run Code Online (Sandbox Code Playgroud)
结果:
=> {"test"=>"1", "test2"=>"2"}
Run Code Online (Sandbox Code Playgroud)
我自己也是红宝石的新手(如果我错了,请多好!)但这有用吗?
@friends_comment_count.sort_by{|k,v| -v}.first 5
Run Code Online (Sandbox Code Playgroud)
如果我已经理解你正在努力实现的目标,那么我在IRB工作
| 归档时间: |
|
| 查看次数: |
21830 次 |
| 最近记录: |