如何将散列与数组值合并到一个数组:
h = {
one: ["one1", "one2"],
two: ["two1", "two2"]
}
合并后应为:
["one1","one2","two1","two2"]
答案 0 :(得分:2)
h.values.flatten
# => ["one1", "one2", "two1", "two2"]
当然,你可以为密钥做同样的事情。您在此处需要flatten
的唯一原因是因为这些值本身就是数组,因此仅h.values
将返回[["one1", "one2"], ["two1", "two2"]]
。
此外,正如仅供参考,merge
means something different (and pretty useful) in Ruby。
如果你想确保它只展平一个级别(根据@tokland的评论),你可以为flatten
提供一个可选参数,例如flatten(1)
。
答案 1 :(得分:2)
h.flat_map &:last
=> ["one1", "one2", "two1", "two2"]