2017-10-27 19 views
0

文字列と出力で合計値を重複する値を削除します。このロジックはXyの値を持っていない場合は、ログ値が正常でなければなりません場合にのみ動作するはず私は値にこのような何か持って

var x = "market^price^cost"; 

var y = "market^price"; //y could be anywhere in the x 

var z = x + "+" + y //I want this to be `"market^price^cost"` 



console.log(x + "+" + y) //"market^price^cost+market^price" 

を、我々は文字列全体を取得する必要があります、yの値の順序は異なる可能性があります。

+1

'y'文字列全体が' x'のどこにあっても 'x'を出力すれば' x' + 'y'と出力されますか?または...?もし 'y =" cost^test "'のような重複があったらどうしますか? – nnnnnn

+0

タグ付き配列です(配列はどこですか)? – msanford

+0

質問を更新しました – john

答えて

0

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
    
 
<button onclick="myFunction()">Try it</button> 
 

 
<p id="demo"></p> 
 

 
<script> 
 
Array.prototype.uniqueMerge = function(a) { 
 
    for (var nonDuplicates = [], i = 0, l = a.length; i<l; ++i) { 
 
     if (this.indexOf(a[i]) === -1) { 
 
      nonDuplicates.push(a[i]); 
 
     } 
 
    } 
 
    return this.concat(nonDuplicates) 
 
}; 
 
function myFunction() { 
 
var x = "market^price^cost"; 
 

 
var y = "market^price"; 
 
    
 
    var xS = x.split("^"); 
 
    var yS = y.split("^"); 
 
    var res = xS.uniqueMerge(yS).join("^"); 
 
    
 
    document.getElementById("demo").innerHTML = res; 
 
} 
 
</script> 
 

 
</body> 
 
</html>

+0

あなたは何か他に期待していることを教えてください –

+0

x値がvar x = "market^price^cost + dollar^pound" – john

+0

は 'x'の値を変更するだけです。それは役に立ちます –

0

あなたはlodashアレイ_.uniq()関数 return _.uniq((x+'^'+y).split('^')).join('^'); を使用するかは、アレイ内の繰り返しデータを削除する機能を書くことができます。

function removeSame(arr) { 
    for(let i = 0;i<arr.length;i++) { 
    if(arr.indexOf(arr[i]) != i) { 
     arr.splice(i,1); 
     i--; 
    } 
} 
return arr; 
} 
return removeSame((x+'^'+y).split('^')).join('^') 
+0

これをチェックしてアドバイスしてください - > https://jsfiddle.net/jxufbv66/ – john

+0

@john https://jsfiddle.net/jxufbv66/1/'+'を '^'に置き換えると、同じ分割シンボルを使用する必要があります。 – BruceWang

関連する問題