1

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

例如:

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 }

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

4

1 回答 1

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"]
于 2014-08-20T22:09:25.440 回答