2014-04-27 21 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"]