2014-12-23 56 views
2

我寫了一個應該執行以下操作的方法。以一個數組作爲輸入,並將數組加上2。將兩個添加到數組中的元素並顯示總和

所以基本上:

array = [1,2,3] 
new_array = array.map! { |item| item + 2 } 

我想不過來顯示總和。因此,對於數組,應該說「1 + 2 = 3」,「2 + 2 = 4等等......」在短短3代替我嘗試這樣做:

a = [1,2,3] 

def add_two(a) 

a.map {|item| puts "#{item} + 2 = item + 2"} 
a.map!(&:to_s) 
end 

add_two(a) 

但我不明白它的權利。任何關於如何解決這個問題的想法?

回答

0

用途:

array = [1,2,3] 
# if you don't want to change the original array, then don't use map! 
new_array = array.map { |item| "#{item} + 2 = #{item + 2}" } 

# or write in a function. 
def add_two(a) 
    a.map { |item| "#{item} + 2 = #{item + 2}" } 
end 
0

試試這個

[1,2,3].each { |item| puts "#{item} + 2 = #{item + 2}" } 
0
puts a.map! {|item| "#{item} + 2 = #{(item + 2).to_s}\n"}.join 

試試這個

0

守則如下: -

arr = [1,2,3]; 

arr.collect{|a| "#{a} + 2 = #{a+2}"} 
0
a.map {|item| puts "#{item} + 2 = item + 2"} 

在你的代碼後,=標誌您試圖訪問對象item但由於其報價之間意味着你應該使用#{item +2}這意味着它將總和2像下面

a.each { |item| puts "#{item} + 2 = #{item + 2}" } 

輸出:

1 + 2 = 3 
2 + 2 = 4 
3 + 2 = 5 
=> [1, 2, 3] 
-1

在紅寶石中很容易如下

array = [1,4,5] 

total = array.sum 

將返回如下...

=> 10 

並按步驟

array.each { |item| puts "#{item} + 2 = #{item + 2}" } 
+0

Enumerable.sum是Rails擴展,見http://api.rubyonrails.org/classes /Enumerable.html#method-i-sum,而不是Ruby方法。 – adass

相關問題