1

ある配列の文字列を別の文字列と連結する方法を(ドキュメントで)読みました。

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

しかし、私が理解していないのは、2つの配列の文字列を1つに連結する方法です。例えば:

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

私は次のようにそれを行います:

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)}}

これは(悲しいことに)配列を返しません。2番目の配列が必要です。outサブレス、サブネス、プレレス、プレネスになります

于 2012-08-25T09:53:54.113 に答える
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 に答える