0

我对红宝石相当陌生,我有一个看起来像这样的哈希:

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

我想把它转换成一个看起来像的数组

[ ["key1", "key2", 5], ["key1", "key3", 2] ... ]

我该怎么做呢?

4

3 回答 3

3

简单地:

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

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

hash.collect{|k, v| k + [v]}
于 2012-07-06T07:55:32.853 回答
2

另一种方法可能是:

hash.map(&:flatten)
# => [["key1", "key2", 5], ["key1", "key3", 2]]
于 2012-07-06T09:51:20.327 回答
-1

to_a 正是这样做的。

{ ["key1", "key2"] => 5, ["key1", "key3"] => 2}.to_a
于 2012-07-06T09:29:44.953 回答