Ruby 比较数组中的内容

Ruby 比较数组中的内容,ruby,arrays,Ruby,Arrays,如何在ruby中比较数组中的值 我想比较数组中的值以检查数组的最大值。是否要查找最大值?已经完成了 [1, 5, 3].max # => 5 是否要找到最大值?已经完成了 [1, 5, 3].max # => 5 Ruby阵列(或任何包含可枚举模块的组件)具有: a=[20,30,100,2,3] a、 最大值#=>100 如果您想编写自己的用于教育目的的代码,可以迭代数组,同时保留在每个点上看到的最大值: 类数组 def my_max max=nil#默认“max”为nil,

如何在ruby中比较数组中的值


我想比较数组中的值以检查数组的最大值。

是否要查找最大值?已经完成了

[1, 5, 3].max # => 5

是否要找到最大值?已经完成了

[1, 5, 3].max # => 5
Ruby阵列(或任何包含可枚举模块的组件)具有:

a=[20,30,100,2,3]
a、 最大值#=>100
如果您想编写自己的用于教育目的的代码,可以迭代数组,同时保留在每个点上看到的最大值:

类数组
def my_max
max=nil#默认“max”为nil,因为我们还没有看到任何值。
self.each{| x | max=x如果(!x | x>max)}用更大的值更新。
max#返回发现的最大值。
终止
终止

或者,如果您对函数编程感兴趣,请考虑使用它,它概括了<代码> MyOxMax 版本中的过程,并使用了简洁:

类数组
def my_max2
自约化(nil){| max,x |(!max | | x>max)?x:max}
终止
终止
Ruby阵列(或任何包含可枚举模块的组件)具有:

a=[20,30,100,2,3]
a、 最大值#=>100
如果您想编写自己的用于教育目的的代码,可以迭代数组,同时保留在每个点上看到的最大值:

类数组
def my_max
max=nil#默认“max”为nil,因为我们还没有看到任何值。
self.each{| x | max=x如果(!x | x>max)}用更大的值更新。
max#返回发现的最大值。
终止
终止

或者,如果您对函数编程感兴趣,请考虑使用它,它概括了<代码> MyOxMax 版本中的过程,并使用了简洁:

类数组
def my_max2
自约化(nil){| max,x |(!max | | x>max)?x:max}
终止
终止

您只需调用
max

a = [1,2,3,4]
a.max # outputs 4
也为最小值,你可以做

a.min # outputs 1

您只需调用
max

a = [1,2,3,4]
a.max # outputs 4
也为最小值,你可以做

a.min # outputs 1

如果您正在比较整数,那么

[1,3,2].max will do the work
如果要比较以字符串格式存储的整数,请尝试:

["1","3","2"].map(&:to_i).max
这将首先将字符串数组转换为int数组,并应用max方法


如果您打算经常使用这种比较,我建议您以int格式存储实际数组,这样实际上可以节省服务器的一些工作时间。

如果您比较整数,那么

[1,3,2].max will do the work
如果要比较以字符串格式存储的整数,请尝试:

["1","3","2"].map(&:to_i).max
这将首先将字符串数组转换为int数组,并应用max方法


如果您打算经常使用这种比较,我建议您将实际数组存储为int格式,这样实际上可以为服务器节省一些工作时间。

恐怕您的
my_max
实现对于新手来说太科学了。我会把它写得更长,并加上评论。@SergioTulentsev:是的,很好。除了《火箭科学》之外,我还添加了一个简单、带注释的版本!=)恐怕你的
my_max
实现对于新手来说太科学了。我会把它写得更长,并加上评论。@SergioTulentsev:是的,很好。除了《火箭科学》之外,我还添加了一个简单、带注释的版本!=)