返回数组中的第二大值-ruby

我有一个函数,它接受一个字符串 a 返回第二个最高值。

例如,如果输入是“abc123”,则返回值是 2。这工作正常。

但是我想更改函数,以便如果只找到一个整数或没有找到整数..我想返回-1。

例如,如果 input = "abc1",则返回值应该 = -1,此输入的当前返回值为 0。

这是我的功能

def function(input)
  input.split("").map { |x| x.to_i }.sort[-2]
end

任何帮助都会很棒!

回答

您可以使用#scan方法首先选择整数。如果整数的大小小于 2 —[-2]返回 nil,因此您可以使用它||来传递您的默认值。

def function(input)
  input.scan(/d/).map(&:to_i).sort[-2] || -1
end


以上是返回数组中的第二大值-ruby的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>