有没有更好的方法来映射Ruby哈希?我想遍历每一对并收集值。也许使用水龙头?
hash = { a:1, b:2 }
output = hash.to_a.map do |one_pair|
k = one_pair.first
v = one_pair.last
"#{ k }=#{ v*2 }"
end
>> [
[0] "a=2",
[1] "b=4"
]
答案 0 :(得分:5)
Ruby的hash包含Enumerable模块,其中包含map
函数。
hash = {a:1, b:2}
hash.map { |k, v| "#{k}=#{v * 2}" }
答案 1 :(得分:3)
错误,是的,使用map
,直接在哈希上调用:
{ a:1, b:2 }.map { |k,v| "#{k}=#{v*2}" } # => [ 'a=2', 'b=4' ]
答案 2 :(得分:1)
hash = { a:1, b:2 }
hash.map{|k,v| [k,v*2]* '='}
# => ["a=2", "b=4"]