差分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'])