DEV Community

Discussion on: Comparing Two Different Arrays

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

Your filter function only need return true or false, and as @adam_cyclones points out, you should really only check the unique values in the merged array (no point checking the same numbers more than once):

function diffArray(arr1, arr2) {
  let merge = [...new Set([...arr1, ...arr2])]

  return merge.filter(function(num) {
    return arr1.indexOf(num) === -1 || arr2.indexOf(num) === -1
  })

}
Enter fullscreen mode Exit fullscreen mode

or, shorter:

const diffArray = (arr1, arr2) => [...new Set([...arr1, ...arr2])].filter(
  num => arr1.indexOf(num) === -1 || arr2.indexOf(num) === -1
) 
Enter fullscreen mode Exit fullscreen mode