差分2配列-freeCodeCamp
Diff Two Arrays Freecodecamp
2つの配列を比較し、要素がすべて指定された2つの配列内の一意の配列要素である新しい配列を返します。
つまり、2つの配列の差を返します。
これがあなたに役立ついくつかのリソースです:
比較演算子
Array.slice()
Array.filter()
Array.indexOf()
Array.concat()
検証条件
diff([1, 2, 3, 5], [1, 2, 3, 4, 5])
配列を返す必要があります。['diorite', 'andesite', 'grass', 'dirt', 'pink wool', 'dead shrub'], ['diorite', 'andesite', 'grass', 'dirt', 'dead shrub']
戻る必要があります['pink wool']
。['andesite', 'grass', 'dirt', 'pink wool', 'dead shrub'], ['diorite', 'andesite', 'grass', 'dirt', 'dead shrub']
戻る必要があります['diorite', 'pink wool']
。['andesite', 'grass', 'dirt', 'dead shrub'], ['andesite', 'grass', 'dirt', 'dead shrub']
戻る必要があります[]
。[1, 2, 3, 5], [1, 2, 3, 4, 5]
戻る必要があります[4]
。[1, 'calf', 3, 'piglet'], [1, 'calf', 3, 4]
戻る必要があります['piglet', 4]
。[], ['snuffleupagus', 'cookie monster', 'elmo']
戻る必要があります['snuffleupagus', 'cookie monster', 'elmo']
。[1, 'calf', 3, 'piglet'], [7, 'filly']
戻る必要があります[1, 'calf', 3, 'piglet', 7, 'filly']
。
コード
function diff(arr1, arr2) { var newArr = [] // Same, same but different. var a1 = [] for(var i=0i 他の方法
function diff(arr1, arr2) { var newArr = [] // Same, same but different. newArr = arr1.filter(function(v){ return arr2.indexOf(v) == -1 }).concat(arr2.filter(function(v){ return arr1.indexOf(v) == -1 })) return newArr } diff([1, 'calf', 3, 'piglet'], [1, 'calf', 3, 4])
es6
function diff(arr1, arr2) { var newArr = [] // Same, same but different. newArr = arr1.filter( (v) => { return arr2.indexOf(v) == -1 }).concat( arr2.filter( (v) => { return arr1.indexOf(v) == -1 })) return newArr } diff([1, 'calf', 3, 'piglet'], [7, 'filly'])