【发布时间】:2010-01-24 19:39:36
【问题描述】:
我有一个哈希,每个值都是一个数组。
我想构建一个包含每个值/数组大小的新数组。
例子:
哈希
{"A"=>["1", "2", "3"], "B"=>["b", "toto"]}
结果
[3, 2]
感谢您的帮助
【问题讨论】:
我有一个哈希,每个值都是一个数组。
我想构建一个包含每个值/数组大小的新数组。
例子:
哈希
{"A"=>["1", "2", "3"], "B"=>["b", "toto"]}
结果
[3, 2]
感谢您的帮助
【问题讨论】:
some_hash.values.map { |v| v.size }
在 1.9 中,我相信你可以做到:
some_hash.values.map(&:size)
【讨论】:
some_hash.map {|k,v| v.size }
_ 作为仅用于解构绑定但实际上并未使用的变量的名称。 (这可以追溯到具有模式匹配的语言,例如 Haskell、ML 或 Scala,其中 _ 实际上是类似于 shell 中的 * 的特殊通配符模式。)所以,我会使用 some_hash.values.map(&:size) 或 some_hash.map {|_, v| v.size } .后者仅在非 Rails Ruby 1.8.6 中,否则我更喜欢前者,但这只是个人喜好。
hash.values.map 更合适。 hash.map 可能更快,但我不认为它更清楚。除非这是一个核心(经常执行)功能,否则 clear 应该很快。
我愿意:
h.collect{|v|v[1].size}
【讨论】: