1
h = {1=>[1,2,3], 2=>[4,5,6]}
new_arr = []
h.each_value {|arr|
  new_arr.concat(arr)
}

这行得通,但有什么更类似于红宝石的方法呢?

所有值都是数组,但不应修改每个数组的元素。

4

4 回答 4

10

这个怎么样?

h.values.flatten
于 2012-05-08T13:44:34.450 回答
4

您可以使用减少:

h.values.reduce(&:+)
于 2012-05-08T13:42:02.643 回答
1

有点神秘

h.flat_map(&:last)

有点冗长

h.flat_map{|_, value| value}
于 2013-04-13T09:51:29.420 回答
0

如果要获取哈希值数组,请使用 Hash#values。

new_arr = h.values
于 2012-05-08T13:57:59.780 回答