1

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

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"]
4

3 回答 3

3
field_suffix.product(field_names).map(&:join)
于 2012-08-25T10:15:11.670 回答
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

于 2012-08-25T10:01:21.617 回答
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这将是 subless, subness, preless, preness

于 2012-08-25T09:53:54.113 回答