在 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/