将2个数组的字符串连接成1个数组

时间:2012-08-25 09:46:04

标签: ruby-on-rails arrays ruby-on-rails-3 string concatenation

我阅读(在文档中)如何将一个数组的字符串与另一个字符串连接起来:

a = [ "a", "b", "c", "d" ]
a.collect! {|x| x + "!" }
a                          #=>  [ "a!", "b!", "c!", "d!" ]

但我还没想到的是如何将2个数组的字符串连接成一个。例如:

field_suffix = %w[prev curr]
field_names = %w[_first_name _last_name]

我希望看到的是:

["prev_first_name", "curr_first_name", "prev_last_name", "curr_last_name"]

订单无关紧要。它可能是:

["prev_first_name", "prev_last_name", "curr_first_name", "curr_last_name"]

3 个答案:

答案 0 :(得分:3)

field_suffix.product(field_names).map(&:join)

答案 1 :(得分:1)

我会这样做:

out=[]
pre=["sub", "pre"]
suf=["less", "ness"]
pre.each do |p|
  suf.each do |s|
    out.push(p+s)
  end
end
puts out

或者在更少的行中:

out=[]
pre=["sub", "pre"]
suf=["less", "ness"]
pre.each{|p| suf.each{|s| out.push(p+s)}}

这不会返回数组(遗憾的是),你必须拥有第二个数组; out这将是一个失业,次要,无助,虚伪

答案 2 :(得分:1)

这是:

field_suffix = %w[prev curr]
field_names = %w[_first_name _last_name]

result = field_suffix.product(field_names).collect {|suffix, name| suffix + name}

有关详细信息,请参阅Array#product