2016-07-03 11 views
-8

私はfreecodecampタスクを完了しようとしています。 2つの配列を比較し、指定された2つの配列のどちらか一方にのみ存在する項目を持つ新しい配列を返しますが、両方ではありません。つまり、2つの配列の対称差を返します。 方法がない2つの異なる配列を比較するには?

は私が Array.prototype.slice()Array.prototype.filter()Array.prototype.indexOf()Array.prototype.concat()、他の方法でそれを修正する方法を知っています。しかし、私は方法なしでそれをやりたい。

+1

ようこそスタックオーバーフロー! [ツアー]を見て回り、[ヘルプ]、特に[*どのように私は良い質問をしますか?*](/ help/how-to-ask) –

+1

@horizo​​ntt:私たちを見てくださいいくつかの努力、サンプルコードを投稿してください。 –

答えて

-2

は、ここで私はそれを実装する方法をです:

window.onload=function(){ 
 
var array1 = [1, 2, 3, 4, 5, 6] 
 
var array2 = [3, 4, 5, 6, 7, 8] 
 
var result = [] 
 
var resultCount=0; 
 
for (var i1 = 0; i1 < array1.length; i1++) { 
 
    var comparedElement = array1[i1]; 
 
    var isUnique = true; 
 
    for (var i2 = 0; i2 < array2.length; i2++) { 
 
     if (comparedElement == array2[i2]) { 
 
      isUnique = false; 
 
      break; 
 
     } 
 
    } 
 
    if (isUnique) { 
 
     result[resultCount]=comparedElement;resultCount++; 
 
    } 
 
} 
 

 

 
for (var i2 = 0; i2 < array2.length; i2++) { 
 
    var comparedElement = array2[i2]; 
 
    var isUnique = true; 
 
    for (var i1 = 0; i1 < array1.length; i1++) { 
 
     if (comparedElement == array1[i1]) { 
 
      isUnique = false; 
 
      break; 
 
     } 
 
    } 
 
    if (isUnique) { 
 
     result[resultCount]=comparedElement;resultCount++; 
 
    } 
 
} 
 
    
 
console.log(result) 
 
}

コードは、他の配列で、配列の各要素を見つけようと、それはそれを見つけることができなかった場合、それを結果配列に追加し、そうでなければ、それをスキップします。これはこれを解決する最も効率的な方法ではないかもしれません。

+0

私は彼がそれについて気にしていないと思うのではなく、比較方法だけです。私はそれを削除しました。 –

+0

ありがとうございます。できます。それを短く、より最適にしようとしています。 – Horizontt

+0

うれしい私は助けることができます。それがあなたのために働くならば、これを答えとしてマークできますか?それも私を少しだけ助けるだろう。 –

関連する問題