2017-06-29 14 views
0

2つの配列を比較し、一致しない値を表示しようとしています。上記のコードを使用してjquery配列を比較して一致しない値を表示

$.each(array1, function(key, value) 
{ 
    var index = $.inArray(value, array2); 
    if(index != -1) 
    { 
    console.log(index); 
    } 
}); 

、私は一致する配列の要素を見つけることができます。

jqueryのを使用して、私はこれを持っています。例えば

、配列1は次のようになります。これらの値は、両方の配列に存在するため

"TCNU315504", "TRIU805499", "CMAU029901", "GESU687543", "TGHU394463", "NEUL0325B" 

しかし、コンソールにのみ表示3、0、4:

"GESU687543", "TCNU315504", "TGHU394463" 

配列2本のように見えます。

正反対です。私は、一致しない値を見つけてその値をページに表示する必要があります。

だから、上記の私の例を使用して、コンソールに表示されるべき値は次のとおりです。

"TRIU805499", "CMAU029901", "NEUL0325B" 

私はそれが理にかなって願っています。

ご協力いただきありがとうございます。

** EDIT **

はSOこの質問はおそらく重複していることを私に助言:それとJavaScript array difference

は、そのページではJavaScriptを使用している、と述べました。私は厳密にここでjqueryを使用しています。

+0

あなたは[JavaScript配列差](HTTPSのhttps://lodash.com/docs/4.17.4#difference –

+0

が重複する可能性のようなものを意味する://のstackoverflowを。 com/questions/1187518/javascript-array-difference) –

+0

jQueryはJavaScriptです。そして、あなたが受け入れる答えは、jQueryではなく、JavaScriptを使用することです。 –

答えて

2

array1のインデックスを使用してフィルタリングするには、配列を切り替えてを反復処理する必要があります。

var array1 = ["GESU687543", "TCNU315504", "TGHU394463"], 
 
    array2 = ["TCNU315504", "TRIU805499", "CMAU029901", "GESU687543", "TGHU394463", "NEUL0325B"], 
 
    result = array2.filter(function (a) { 
 
     return array1.indexOf(a) === -1; 
 
    }); 
 

 
console.log(result);

Array#includesとES6:

var array1 = ["GESU687543", "TCNU315504", "TGHU394463"], 
 
    array2 = ["TCNU315504", "TRIU805499", "CMAU029901", "GESU687543", "TGHU394463", "NEUL0325B"], 
 
    result = array2.filter(a => !array1.includes(a)); 
 

 
console.log(result);

+0

コードをテストしています.... –

+0

ブルッフ....私は言っていますが...あなたは....です...天才。ありがとうございます。これは私のために働いたものです。 –

-1

場合は、なぜあなただ​​け(にあれば(!インデックス= -1)を変更しないでくださいインデックス=== -1)。

0

array1ではなく、array2を反復処理する必要があります。

例:

var array1 = ["GESU687543", "TCNU315504", "TGHU394463"]; 
var array2 = ["TCNU315504", "TRIU805499", "CMAU029901", "GESU687543", "TGHU394463", "NEUL0325B"]; 

array2.forEach(value => array1.indexOf(value) === -1 && console.log(value)); 
1
var array3; 
for(var i=0, l=array1.length; i<l;i++){ 
    for(var j=0, k=array2.length; j<k; j++){ 
     if(array1[i] != array[2]){ 
      aray3.push(array[i]); 
     } 
    } 
} 
+0

答えとしてコードを投げ捨てるのを避けて、その動作とその理由を説明してください。関連するコーディング経験を持っていない人にとっては、あなたのコードは明らかではないかもしれません。あなたの答えを編集して、[説明、文脈を含めて、あなたの答えに何らかの制限、前提条件、簡略化について言及しよう。](https://stackoverflow.com/help/how-to-answer) – Frits

+0

これは素晴らしいことです。 array4と似ていないすべての値を取得する答えを与えます。 array3はすべて同様の値で、array4は変更された値になります... – user3548161

関連する問題