【问题标题】:How to map a Ruby hash?如何映射 Ruby 哈希?
【发布时间】:2013-12-18 14:23:10
【问题描述】:

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

【问题讨论】:

    标签: ruby arrays map hash collect


    【解决方案1】:

    Ruby 的 hash 包含 Enumerable 模块,其中包含 map 函数。

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

    Enumerable#map | RubyDocs

    【讨论】:

      【解决方案2】:

      嗯,是的,map,直接在哈希上调用:

      { a:1, b:2 }.map { |k,v| "#{k}=#{v*2}" } # => [ 'a=2', 'b=4' ]
      

      【讨论】:

        【解决方案3】:
        hash = { a:1, b:2 }
        hash.map{|k,v| [k,v*2]* '='}
        # => ["a=2", "b=4"]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-12-13
          • 1970-01-01
          • 1970-01-01
          • 2011-12-10
          • 1970-01-01
          • 1970-01-01
          • 2018-10-13
          • 2011-02-07
          相关资源
          最近更新 更多