2015-12-06 34 views
2

在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

請注意,該方法必須返回對最大數組本身的引用,而不是大小。此外,在這種情況下,如果有相同大小的數組,則返回哪個數組並不重要。

回答

6

使用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 
+0

完美!謝謝。 –