配列間差異を見つけ出してアルゴリズムに挑戦する.


チャレンジ:
2つの配列を比較して、2つの所与の配列内のすべての固有の配列要素である新しい配列を返します.つまり、2つの配列の違いを返します.
例えば、diff([1,2,3,5]、[1,2,3,4,5])は、1つの配列を返すべきです.
「diorte」、「andesite」、「grass」、「dirt」、「pink wool」、「dead shrub」、「diorte」、「andesite」、「grass」、「dirt」、「dead shrub」は「pink wool」に戻るべきです.
「andesite」、「grass」、「dirt」、「pink wool」、「dead shrub」、「diorte」、「andesite」、「grass」、「dirt」、「dead shrub」は「diorte」、「pink wool」に戻るべきです.
「andesite」、「grass」、「dirt」、「dead shrub」、「andesite」、「grass」、「dirt」、「dead shrub」は[]に戻るべきです.
[1,2,3,5],[1,2,3,4,5]は[4]に戻るべきです.
[1、「callf」、3、「piglet」、[1、「callf」、3、4]は[piglet]、4]に戻るべきです.
[]、[[snuffleuplagus]、[[cookie mon]]は[[snuffleuagus]]、[[cookie mo]]に戻るべきです.
[1]「callf」、3、「piglet」、「7」、「filly」は[1、「callf」、3、「piglet」、7、「filly」に戻るべきです.
答え:
方法
説明
filter()
数値要素を検出し、条件に該当するすべての要素の配列を返します.
concat()
2つ以上の配列を接続し、結果を返します.
indexOf()
配列内の要素を検索し、その位置を返します.
function diff(arr1, arr2) {
var newArr = [];
 newArr = arr1.filter(cur => arr2.indexOf(cur) === -1);
 return newArr.concat(arr2.filter(cur => arr1.indexOf(cur) === -1));
}

diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);
実行結果:
[4]
オンラインテスト:
配列間差異を見つけ出してアルゴリズムに挑戦する.