我正在使用Ruby 2.4.
我有一个哈希,其键是一个数字,其值是一个元素数组.如何使用具有最多元素的值在哈希中找到键?我知道,如果我的价值是一个数字,我可以这样做:
my_hash.max_by { |k, v| v }
Run Code Online (Sandbox Code Playgroud)
但由于该值是一个数组,我不知道如何告诉上面使用数组中的元素数量应该是最大值.
max_by 是正确的方法:
my_hash = { a: [1, 2], b: [1, 2, 3], c: [5] }
key, longest_array = my_hash.max_by{ |k, array| array.size }
p key
#=> :b
p longest_array
#=> [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
您只需指定比较应该在哪个对象上.在这种情况下,数组值的大小.
您可能需要先添加一些检查:这仅在所有哈希值都响应时才有效:size.
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |