arrays - 如何找到字符串数组中的最小元素,但只考虑整数?

标签 arrays ruby string integer min

我正在使用 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/

相关文章:

ios - 使用 Float 遍历二维数组时出错

arrays - 如何在 Swift 中从数组创建给定大小的唯一数组?

ruby - __FILE__ == $PROGRAM_NAME 在 ruby​​ 中是什么意思?

python - 如何删除列表中的多个字符?

python - 运算符 + 将元组添加到存储在多维元组数组中的另一个元组

ruby - 私有(private)方法 `select' 调用 nil :NilClass (NoMethodError)

ruby - 无法在 Mountain Lion 上安装 therubyracer -v '0.10.0'

c++ - 为什么 string==string 比较失败?

java - 如何使用正则表达式模式在不解析的情况下获取 JSON 属性值

php - 使用 PDO、准备好的语句和用 bindParam 替换标记来更新 MySQL;收到 'variables don' t 匹配 token 错误