Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数字数组中的最大值(Ruby)_Ruby_Ruby On Rails 3 - Fatal编程技术网

数字数组中的最大值(Ruby)

数字数组中的最大值(Ruby),ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我目前正在学习Ruby,为了我的生活,我找不到解决这个问题的方法: 返回数字数组中的最大值 输入:[5,17,-4,20,12] 产出:20 有人能帮我解决这个问题并解释他们为什么使用他们的解决方案吗 谢谢。只要使用 如果您学习并希望手动查找,可以使用循环 比如说 max_value = -Float::INFINITY for item in [5, 17, -4, 20, 12] do max_value = item if item > max_value end max_v

我目前正在学习Ruby,为了我的生活,我找不到解决这个问题的方法:

返回数字数组中的最大值

输入:[5,17,-4,20,12] 产出:20

有人能帮我解决这个问题并解释他们为什么使用他们的解决方案吗

谢谢。

只要使用

如果您学习并希望手动查找,可以使用循环

比如说

max_value = -Float::INFINITY

for item in [5, 17, -4, 20, 12] do
  max_value = item if item > max_value
end

max_value # => 20
在这个循环中,您逐个检查数组的所有元素,并将值
max\u value
分配给当前最大的值

但是在Ruby中,最好使用
每个
来实现这一目的

max_value = -Float::INFINITY

[5, 17, -4, 20, 12].each { |item| max_value = item if item > max_value }

max_value # => 20
即使是一个想法,例如,这里的方式

[5, 17, -4, 20, 12].sort.last # => 20

正如你所理解的那样,这一切和方法。在Ruby中,它是一个非常强大的工具。

这是从数组中删除字符并查找max的方法

[1,2,3,-4,'a'].map(&:to_i).max

你疯了吗?你正在教一个Ruby新手使用
进行
循环@CarySwoveland,你为什么这么生气?这只是一个例子:)我添加了
每个
,可能是因为在任何代码评审中,Rubyist都会说“重写这个
,让
循环成为其他任何东西。”我们不喜欢它们。我们不使用它们。我们不教不熟悉这种语言的人使用它们。有更好的解决方案。最好是通过一个教程来介绍这些类型的东西。你尝试过什么?您遇到问题的代码是什么?你的代码有什么问题?你收到错误信息了吗?错误消息是什么?你得到的结果不是你期望的结果吗?你期望得到什么样的结果?为什么?你会得到什么样的结果?两者有什么不同?你观察到的行为是否不是期望的行为?期望的行为是什么?为什么?观察到的行为是什么?它们有什么不同?请提供一个。
[1,2,3,-4,'a'].map(&:to_i).max