いつもお世話になっております。
下記のように文字列で形成された配列の中から重複する文字列のみ抽出したいと考えております。
ruby
1["A", "B", "A", "C"]
###試した事
検索した下記のような方法を掲載されているページを良く見かけたのですが、こちらのの方法では中身が空になってしまいます。
対象の配列が数値では無く、文字列なのが原因だと思います。
ary.sort! ary.select.with_index{|e,i| e == ary[i+1] }
初歩的な内容ですが、どなたかアドバイスお願い致します。
###追記
こちらの実行環境に問題がありました。
下記の様に条件分岐でuniq!メソッドを使用してしまい、抽出したい値を削除していました。
条件分岐はaryの値を重複をチェックし、全て同じ値の場合。いくつか被る場合
全く被らない場合として分岐したいと考えております。
ruby
1if ary.uniq.length == 1 2#aryが全て同じ値の場合 3 4elsif ary.uniq! != nil 5#aryがいくつか被る場合 6#この部分で質問させて頂いた内容を書きます。 7 8elsif ary.uniq! == nil 9#aryが全く被らない場合 10 11end
そこで質問なんですが、条件分岐でuniqメソッドを使用してしまうと内容が上書きされてしまいますので、uniqメソッドを使用する前の状態に戻す方法を教えて頂けないでしょうか?
またはuniqメソッド以外で、重複を操作する適切なメソッドがあれば教えて頂けないでしょうか?
宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/16 06:13