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 に答える