我正在使用 Ruby 2.4。我有一个应该是整数的字符串数组 ...
["1", "55", "25", ... ]
我有以下计算数组中的最小数
data.map(&:to_i).min
这很好用,除了非整数字符串悄悄进入我的数组的时候,比如
["1", "a", "2", "3"]
在我的 data.map(&:to_i).min
行中,上面的代码返回零。我如何修改我的代码,以便它只取数组中实际为整数的元素的最小值?
最佳答案
你有几种方法可以做到这一点,但如果你想忽略垃圾,最简单的方法是屏蔽掉非数值:
data = ["1", "a", "2", "3"]
data.grep(/\A\-?\d+\z/).map(&:to_i).min
# => 1
grep
方法可以很容易地挑选出与特定模式匹配的事物,以及许多其他事物。
关于arrays - 如何找到字符串数组中的最小元素,但只考虑整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41709063/