2016-10-19 10 views
0

を離れて比較するとき、私は2つのデータ部分文字列が要素

example1 = ["og", "phan"] 
example2 = ["dog", "cat", "elephant", "chicken", "snake"] 

彼らはのサブされている場合、私は返さする必要がどのような、正確に、example1のみからの要素を含む新しい配列ですが設定されます持っている文字列に含まれているかどうかを確認しますexample2およびのいずれかの要素も、と同じ順序でを含める必要があります。

私は、次のコードの作業を得ることができますが、新しい配列が代わりに["og", "phan"]の異なる順序(例えば["phan", "og"]の要素を返します

r = [] 
array1.map { |x| r.push(x) if array2.join(" ").include?(x) } 
r.flatten 

エクストラ:私はあなた場合include?が動作しないことが判明配列に対する配列を比較する際に、他の言葉で、それはそれはまったく同じである場合を除き、単一の配列要素内の文字列内の部分が見つかりませんそれを使用しています。

+1

私はあなたのコードを試してみましたが、順序は正しいです。チェックアウトして実行してください:https://repl.it/EA98/0 – roychri

+0

確かに、最後にsortメソッドが欠けていたので、正しい順序で配列が返されませんでした。 – Leo

答えて

2

私はこの

01のような何かをしたいです
+0

これは、音節よりも部分文字列です。 – Stefan

+0

ええ、名前を付ける方法がわかりませんでした。 – Ursus

+0

それは動作します。ありがとうございます。私は関数がlexicographicの順序で返される必要があったので機能しなかったことに言及することを忘れていました。これは単純にsort – Leo

関連する問題