我对红宝石相当陌生,我有一个看起来像这样的哈希:
{ ["key1", "key2"] => 5, ["key1", "key3"] => 2, ... }
我想把它转换成一个看起来像的数组
[ ["key1", "key2", 5], ["key1", "key3", 2] ... ]
我该怎么做呢?
简单地:
hash.collect{|k, v| k << v}
如果您需要原始哈希不变:
hash.collect{|k, v| k + [v]}
另一种方法可能是:
hash.map(&:flatten)
# => [["key1", "key2", 5], ["key1", "key3", 2]]
to_a 正是这样做的。
{ ["key1", "key2"] => 5, ["key1", "key3"] => 2}.to_a