Compare two arrays and get those values that did not match JavaScript

We have two arrays of literals that contain some common values, our job is to write a function that returns an array with all those elements from both arrays that are not common.

For example −

// if the two arrays are:
const first = ['cat', 'dog', 'mouse'];
const second = ['zebra', 'tiger', 'dog', 'mouse'];
// then the output should be:
const output = ['cat', 'zebra', 'tiger']
// because these three are the only elements that are not common to both

Let’s write the code for this −

We will spread the two arrays and filter the resulting array to obtain an array that contains no common elements like this −


const first = ['cat', 'dog', 'mouse'];
const second = ['zebra', 'tiger', 'dog', 'mouse'];
const removeCommon = (first, second) => {
   const spreaded = [...first, ...second];
   return spreaded.filter(el => {
      return !(first.includes(el) && second.includes(el));
console.log(removeCommon(first, second));


The output in the console will be −

[ 'cat', 'zebra', 'tiger' ]