2017-01-17 6 views
0

私はそれに文字列を持つオブジェクトを持っています。2つの文字列のJavaScript/Lodashの交点

私は私が他の文字列の内部でその値ならば、私はそれぞれの値とテストを通じて、配列にそれを回すと、ループができることを知っているが、私は

'124' 

を返すようにしたい

filteredStrings = {search:'1234', select:'1245'} 

これを行う簡単な方法を探しています。好ましくはロダシュで。

_.intersection(Array、Array)が見つかりましたが、これは配列でのみ機能します。

https://lodash.com/docs#intersection

は、私は、これは潜在的に多くの情報を保持しようとしているので、それぞれの値によって、ループを配列にオブジェクトを変換し、しなくても、これを行うことができるようにしたいと私はそれが仕事をしたいですできるだけ早く。

ありがとうございました。

+1

私が言及した方法は、実際に脅威/あまりにも、アレイ(など)に文字列を変換することに気づきましたか? https://jsfiddle.net/qm6w2umc/ – sinisake

+0

奇妙なことに、私はウェブサイトでそれをやろうとしましたが、うまくいかなかったのです。ご協力いただきありがとうございます。これを答えとして表示すると、これが正しいとマークされます。なぜなら、これは私が使い終わったからです。 –

答えて

1

文字列(search)の1つをRegExp文字セットに変換します。他の文字列(select)にRegExp(String#match)を使用します。

注:ロダシュの交差とは異なり、結果の文字は一意ではないため、例4は2回表示されます。今

var filteredStrings = {search:'1234', select:'124561234'} 
 

 
var result = filteredStrings.select.match(new RegExp('[' + filteredStrings.search + ']', 'g')).join(''); 
 

 
console.log(result);

+0

それは素晴らしいです。私はそれを試して、それがどうなるかを教えてあげます。 –

+0

私はそれらをユニークにしたい。申し訳ありませんが、私はそれを言及しなかった。以前にどのように以前のものに戻すことができますか? –

+0

これは実際に私のために働いたので、正しくマークするつもりですが、コンポーネントにコンポーネントを送信する前に解析することにしたので、交差を使用してしまいました。 –

関連する問題