如何獲得在Ruby中迭代散列的特定輸出?


Answers

迭代哈希的最基本方法如下:

hash.each do |key, value|
  puts key
  puts value
end
Question

我想獲得一個迭代Ruby Hash的特定輸出。

這是我想要迭代的哈希:

hash = {
  1 => ['a', 'b'], 
  2 => ['c'], 
  3 => ['d', 'e', 'f', 'g'], 
  4 => ['h']
}

這是我想要得到的輸出結果:

1-----

a

b

2-----

c

3-----

d 

e

f

g

4-----

h

在Ruby中,我怎樣才能用我的哈希獲得這樣的輸出?




我的一條線解決方案:

hash.each { |key, array| puts "#{key}-----", array }

我認為這很容易閱讀。




調用排序哈希將其轉換為嵌套數組,然後通過鍵對它們進行排序,所以您只需要這樣做:

puts h.sort.map {|k,v| ["#{k}----"] + v}

如果你實際上不需要“----”部分,那可能只是:

puts h.sort





Related