arrays - 从一组数组中返回最大的数组

标签 arrays ruby enumerable

在 Ruby 中,编写接受一组数组作为参数并返回元素数量最多的数组的方法的最优雅方法是什么?

def largest_array(*arrays)
end

例如,给定:

a1 = [*0..9]
a2 = [*0..99]
a3 = [*0..49]
a4 = [*0..19]

largest_array(a1, a2, a3, a4)应该返回 a2 .

请注意,该方法必须返回对最大数组本身的引用,而不是大小。此外,在这种情况下,如果存在大小相同的数组,则返回哪个数组并不重要。

最佳答案

使用 Enumerable#max_by :

def largest_array(*arrays)
  arrays.max_by &:size
end


a1 = [*0..9]
a2 = [*0..99]
a3 = [*0..49]
a4 = [*0..19]
largest_array(a1, a2, a3, a4) == a2  # => true

关于arrays - 从一组数组中返回最大的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34116813/

相关文章:

PHP - 多行随机数组

c - 如何将从文件收集的字符串复制到新数组中以在 C 中进行控制台输出

ruby-on-rails - 获取特定月份的第一个 beginning_of_week

ruby - 赋值运算符真的是 "just"运算符吗?

JavaScript:不可枚举的属性 - 何时何地?

c# - 使用 Enumerable.Range() 填充字典时出现问题

python - 如何使用初始值递归地将参数输入到此函数中?

arrays - 通过将数组 B 附加到数组 A 而不更改数组 A 的值,在 Julia 中定义数组(C)

ruby-on-rails - 您使用 Rails 进行版本控制和部署的工作流程是什么?

ruby - Array#each 与 Array#map