difference

Calculates the difference between two arrays, without filtering duplicate values.

  • Create a Set from b to get the unique values in b.
  • Use Array.prototype.filter() on a to only keep values not contained in b, using Set.prototype.has().
const difference = (a, b) => {
  const s = new Set(b);
  return a.filter(x => !s.has(x));
};
difference([1, 2, 3, 3], [1, 2, 4]); // [3, 3]