如何在 Ruby 中访问哈希值中特定列的最小值或最大值
我有一个包含键值数组的散列。我想在数组值的特定列中获取最小值或最大值,以便我可以更改第一列的值。下面是我的代码。有什么建议吗?
lru_c()
当我运行这段代码时,我得到 0,即第三个哈希值中的最小值。我需要的是数组值第 2 列中最少的值。即 [6,2,9,4].min
。我想访问在最后一列中具有最小值的 h[2]
。
def lru_c()
h = Hash.new{|hsh,key| hsh[key] = [] }
h[1] = [0,0,6]
h[2] = [0,0,2]
h[3] = [0,0,9]
h[4] = [7,1,4]
puts h.values[2].min
end
最佳答案
collect
将遍历任何可枚举对象,例如哈希,以创建一个包含 block 参数指定值的数组。由于它会产生一个数组,因此您可以应用 .min
:
h.collect { |_, value| value[2] }.min
哈希的枚举器包含键和值,但由于您的规范中不需要键,我使用了 _
占位符。
如果某些值可能没有 [2]
索引,您应该将 .min
更改为 .compact.min
.
关于ruby - 如何在 ruby 中访问哈希值 [2] 的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57751190/