arrayDiff kata

difference between arrays

by trentHarlem

JavaScript

// uses .includes()

const arrayDiff = (a, b) => a.filter(i => !b.includes(i))

// uses .indexOf()

//const arrayDiff = (a, b) => a.filter((i) => (b.indexOf(i) > -1)?false:true)

//----------------------------

/* 
function arrayDiff(a, b) {
  return a.filter((i) => (b.indexOf(i) > -1)?false:true)
}
 */
//----------------------------


// returns correct with ONE argument for b
//function arrayDiff(a, b) {
  //return a.filter((item) => item == b ? false : true)

 /*  let temp = a
    .filter((item) => {
      if (item == b) {
        return false
      } else {
        return true;
      }
    }) 
  return temp*/
//}

//----------------------------

/* 
function arrayDiff(a, b) {
  a.filter((item,i) => item[i]!=b?1:-1
  )
  return a
}
 */

console.log(arrayDiff([1, 2, 2, 2, 3], [2, 3]), '== [1]')


//console.log(arrayDiff([13,8,-11,17,-13],[-11,-13]), '13,8,17')
//console.log(arrayDiff([-6,13,13,8,-15,14,9,3,5,15,20,-10,-17,-8,4,10,2],[8,-10,-6,14,10,13,15,-17,2,9]))
console.log(arrayDiff([1, 2, 2, 2, 3], [2]), '== [1,3]')
//console.log(arrayDiff([], [4,5]), [], "a was [], b was [4,5]");
//console.log(arrayDiff([3,4], [3]), [4], "a was [3,4], b was [3]");
//console.log(arrayDiff([1,8,2], []), [1,8,2], "a was [1,8,2], b was []");