将符号散列拆分为键和值的字符串数组

时间:2013-09-29 08:22:01

标签: ruby-on-rails hash key-value

有没有办法将符号哈希分割成键和值的字符串数组?

例如:

hash = {:key1 => 'val1',:key2 => 'val2'}

应该是:

keys = ['key1', 'key2']
values = ['val1','val2']

我知道我可以这样做:

keys = hash.keys.map { |key| key.to_s }
values = hash.values.map { |val| val.to_s }

但我想在一个循环中完成它。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题,因为我也在寻找一种方法。这就是我想出的:

hash.map { |k,v| [k.to_s, v.to_s] }.transpose

你可以这样使用:

hash = { :k1 => "v1", :k2 => "v2", :k3 => "v3" }
keys, values = hash.map { |k,v| [k.to_s, v.to_s] }.transpose
# keys == ["k1", "k2", "k3"]
# values == ["v1", "v2", "v3"]