0

有没有更好的方法来映射 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"
]
4

3 回答 3

5

Ruby 的哈希包含Enumerable模块,其中包含该map函数。

hash = {a:1, b:2}
hash.map { |k, v| "#{k}=#{v * 2}" }

可枚举#map | Ruby 文档

于 2013-12-02T18:58:47.240 回答
3

错误,是的,with map,直接在哈希上调用:

{ a:1, b:2 }.map { |k,v| "#{k}=#{v*2}" } # => [ 'a=2', 'b=4' ]
于 2013-12-02T18:58:44.410 回答
1
hash = { a:1, b:2 }
hash.map{|k,v| [k,v*2]* '='}
# => ["a=2", "b=4"]
于 2013-12-02T18:58:58.253 回答