1

Ruby に配列がある場合、次のようになります。

["foo", "bar", "bat"]

値のすべての組み合わせで新しい配列を生成するにはどうすればよいですか?

次のような出力が必要です。

["foo", "bar", "bat", "foo-bar", "foo-bat", "bar-bat", "foo-bar-bat"]

順序は重要ではありません。また、との両方 は必要ありません。"foo-bar""bar-foo"

元の配列には、最大 5 ~ 6 個のメンバーが含まれる場合があります。

4

2 に答える 2

5
ar = ["foo", "bar", "bat"]
p 1.upto(ar.size).flat_map {|n| ar.combination(n).map{|el| el.join('-')}}
#=>["foo", "bar", "bat", "foo-bar", "foo-bat", "bar-bat", "foo-bar-bat"]
于 2012-06-05T16:09:45.313 に答える
2

2 つの配列の外積を見てみることができます

arr = %w(foo bar bat)

arr.product(arr).collect{|el| el.uniq.join("-")}
于 2012-06-05T16:04:29.250 に答える