如何获取哈希值的大小

den*_*min 1 ruby arrays hash

我有一个哈希,每个值都是一个数组。

我想建立一个包含每个值/数组大小的新数组。

例:

哈希

{"A"=>["1", "2", "3"], "B"=>["b", "toto"]}
Run Code Online (Sandbox Code Playgroud)

结果

[3, 2]
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

Ale*_*sky 5

some_hash.values.map { |v| v.size }
Run Code Online (Sandbox Code Playgroud)

在1.9中,我相信您可以做到:

some_hash.values.map(&:size)
Run Code Online (Sandbox Code Playgroud)

  • 为了清楚起见,我认为`hash.values.map`更合适。“ hash.map”可能会更快,但我认为它并不清晰。除非这是一个核心(经常执行)功能,否则清除应该比其他功能快。 (3认同)