修改数组并推送以形成另一个数组

时间:2012-10-25 14:46:02

标签: ruby

有什么比这更好的方法:

X = %w(a b c)
Y = %w()
  X.each do |x|
    Y << "good_" + x
  end

感谢。

3 个答案:

答案 0 :(得分:6)

%w(a b c).map{|x| "good_#{x}"}

答案 1 :(得分:3)

数组上的collect方法会做

Y = X.collect{|e|'good_'+e} 

OR

直接

Y = %w(a b c).collect{|e|'good_'+e}

答案 2 :(得分:1)

将它们定义在同一行:

y = ( x = %w[a b c] ).map { |i| 'good_%s' % i }

y
=> ["good_a", "good_b", "good_c"]

x
=> ["a", "b", "c"]