を追加します。この文字列で私は以下を行うことができる必要があります。Javascriptがトークン交換する/私は、次のようになります文字列を持っている
....
var test = MergeTokens('test:1;hello:five;just:23', 'yes:23;test:567');
...
最終結果は「テスト:567;こんにちは:5;ちょうど:23;はい:23」でなければなりません(トークンの正確な順序は重要ではないことに注意)。誰もがこのについて移動する方法のいずれかのスマートなアイデアを持っている場合
ただ不思議。私は正規表現が右の各トークンに置き換わると思っていましたが、置き換えが起こらなかったのは、それに単にマッチしなかったためです。しかし、おそらくもっと良い方法があります。
乾杯 アンソニー
編集:右側が左をオーバーライドする必要があります。左は最初はそこにあり、右は新しいコンテンツです。それを見るもう1つの方法は、右に存在しない場合にのみトークンを左に保持し、右にすべてのトークンを保持することです。
@Ferdinand お返事ありがとうございます。問題は、提案したソリューションの効率です。私は当初同様の行を考えていましたが、分割と結合はもちろんのこと、マージのO(n * z)複雑さ(nとzはそれぞれ左と右の数字トークンです)のためにそれを割り引いていました。
したがって、なぜ私は正規表現の道を探すためにしようとしていました。たぶん背後、正規表現は、同様に不良または悪化であるが、正規表現を有する右側(右側のトークンの合計量のためにO(N))に存在する左列から任意のトークンを除去した後、ちょうど追加います2つの文字列(すなわち、vat test = test1 + test2)の方が効率的です。おかげ
検索ハッシュテーブル(JavaScriptオブジェクト)でO(1であります)、マージ操作はO(n²)ではなく線形です。正規表現があなたが望むことをする力を持っていたとしても(それはできない)、あなたはそれよりもうまくいくわけではありません。私が知っていた何か... – bobince
クール:) – vdhant