Back to Home
Arrays

How to Find Array Intersections

Use filter with includes to find common elements

Quick Answer (2024 ES6+ Way)

javascript
const arr1 = [1, 2, 3, 4];
const arr2 = [3, 4, 5, 6];
const intersection = arr1.filter(x => arr2.includes(x));
console.log(intersection); // [3, 4]

Live Example

javascript
const skills1 = ['JavaScript', 'React', 'Node', 'CSS'];
const skills2 = ['Python', 'React', 'CSS', 'Docker'];

// Find common skills
const common = skills1.filter(skill => skills2.includes(skill));
console.log(common);

// Multiple arrays intersection
const intersectAll = (...arrays) => {
  return arrays.reduce((acc, arr) =>
    acc.filter(item => arr.includes(item))
  );
};

const result = intersectAll([1, 2, 3], [2, 3, 4], [3, 4, 5]);
console.log(result);

// Using Set for better performance
const intersection = (arr1, arr2) => {
  const set2 = new Set(arr2);
  return arr1.filter(x => set2.has(x));
};

Common Variations

Difference
javascript
const difference = arr1.filter(x => !arr2.includes(x));
Symmetric Difference
javascript
const symDiff = arr1.filter(x => !arr2.includes(x))
  .concat(arr2.filter(x => !arr1.includes(x)));

❌ Don't Do This (Outdated Way)

Avoid nested loops for large arrays

javascript
// DON'T DO THIS - O(n²) complexity
var common = [];
for (var i = 0; i < arr1.length; i++) {
  for (var j = 0; j < arr2.length; j++) {
    if (arr1[i] === arr2[j]) common.push(arr1[i]);
  }
}

Browser Support

Works in all modern browsers (ES2015+)

#array#intersection#common