2 つの配列の対称的な違いを見つけたいと思います。 この実装は機能しますが、一連の配列間の対称的な違いを見つける関数ではなく、2 つの配列のみに固有の関数を書きたいと思います。関数は次のようになります。
function diffArray(arr1, arr2) { }
次に、対称差を含む新しい配列を返します。
これまでの私の最高の試みは
var newArr = [];
for (var i = 0; i < arr1.length; i++){
var x = arr[i];
for (var n = 0; n < arr2.length; n++){
var y = arr2[n];
if (y === x){
break;
} else {
newArr.push(y);
}
}
}
しかし、私はこれが近いことでさえないことを知っています。質問 (これは FreeCodeCamp のアルゴリズムの問題です) は、実装でメソッド array.filter()、array.indexOf()、array.concat()、array.slice() を使用することを示唆しています。一般的な考え方は、配列の 1 つ (私の場合は最初の要素) の各要素を取得し、それを 2 番目の配列のすべての要素と比較することです。一致するものが見つからない場合は、その要素を newArr にプッシュします。
誰もが前述の方法を使用する健全な実装を手伝って、それがどのように機能するかについてしっかりした説明/コメントを提供できますか?
ありがとうございました!