Ruby哈希的map_values()?

我想念 Ruby中的Hash方法只转换/映射哈希值.

h = { 1 => [9,2,3,4],2 => [6],3 => [5,7,1] }
h.map_values { |v| v.size }
#=> { 1 => 4,2 => 1,3 => 3 }

你如何在Ruby中存档?

更新:我正在寻找map_values()的实现.

# more examples
h.map_values { |v| v.reduce(0,:+) }
#=> { 1 => 18,2 => 6,3 => 13 } 

h.map_values(&:min)
#=> { 1 => 2,3 => 1 }

解决方法

你可以像这样修补哈希类

class Hash
  def map_values
    map { |k,v|
      [k,yield(v)]
    }.to_h
  end
end

p ({1 => [1,1,1],2 => [2],3 => [3,3]}.map_values { |e| e.size })

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...