2011-06-10 38 views
1

說我是在尋找更大的2臺ň數字(例如的緣故),我有這個算法:是否有將變量設置爲2個值中較大值的快捷方式?

def maxofarrays set1 set2 
    greater_array = [] 
    set1.each_index do |index| 
     if set1[index] > set2[index] then greater_array << set1[index] 
     else greater_array << set2[index] 
    end 
    greater_array 
end 

是否有一個快捷方式的代碼兩個最裏面的線?或者我必須輸入它?

+0

我建議你在谷歌搜索「ruby functional programming」。 – tokland 2011-06-10 20:28:18

回答

6
a = [347, 163, 436, 234, 113] 
b = [213, 566, 124, 212, 963] 
c = a.zip(b).map(&:max) 
#=> [347, 566, 436, 234, 963] 
+0

[Array#zip](http://ruby-doc.org/core/classes/Array.html#M000260)將來自接收者和參數的值交織在一起,而[Enumerable#max](http:// ruby-doc.org/core/)返回Enumerable中所有值的最大值。 – Phrogz 2011-06-10 22:57:23

相關問題