2014-04-27 24 views
0

我有以下陣列使用地圖創建一個新的陣列

personality_types = ["bad", "good", "great"] 

我想通過personality_types迭代和構建(也輸出吧)這個數組:["bad person", "good person", "great person"]

我已經做了這樣

personality_types = ["bad", "good", "great"] 

personality_types.each do |x| 
    x << ' person' 

end 

puts personality_type 

但我希望能夠使用.map函數來代替它。我怎樣才能使用.map來做到這一點?我一直無法弄清楚。

這是我有什麼,但它不工作(我只得到[「壞」,「好」,「偉大」]我的輸出):

personality_types = ["bad", "good", "great"] 

personality_types.map { |type| 
    type + " person" 
    } 


puts personality_types 

回答

2

Array#map返回陣列。你必須把它賦值給變量:

personality_types = ["bad", "good", "great"] 
personality_types = personality_types.map { |type| "#{type} person" } 

或者使用Array#map!直接改變陣列:

personality_types = ["bad", "good", "great"] 
personality_types.map! { |type| "#{type} person" } 

personality_types 
#=> ["bad person", "good person", "great person"]