在ruby中将哈希转换为数组

时间:2012-07-06 07:51:07

标签: ruby arrays hash

我对ruby很新,而且我有一个看起来像这样的哈希:

{ ["key1", "key2"] => 5, ["key1", "key3"] => 2, ... }

我希望将其转换为类似

的数组
[ ["key1", "key2", 5], ["key1", "key3", 2] ... ]

我将如何做到这一点?

3 个答案:

答案 0 :(得分:3)

简单地:

hash.collect{|k, v| k << v}

如果您需要原始哈希值不变:

hash.collect{|k, v| k + [v]}

答案 1 :(得分:2)

另一种方式可能是:

hash.map(&:flatten)
# => [["key1", "key2", 5], ["key1", "key3", 2]]

答案 2 :(得分:-1)

to_a正是如此。

{ ["key1", "key2"] => 5, ["key1", "key3"] => 2}.to_a