자바스크립트 두 배열의 교집합 구하기

자바스크립트에서 두 개의 배열이 주어졌을 때, 두 배열의 교집합을 구하는 방법에 대해 알아보겠습니다. 교집합은 두 배열에 동시에 포함된 공통 요소들의 집합을 의미합니다. 이 작업을 수행하기 위해 다양한 방법과 메서드들을 사용할 수 있지만, 가장 간단하고 효율적인 방법 중 하나를 소개하겠습니다.

방법 1: filter() 메서드 사용하기

const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];

const intersection = array1.filter(value => array2.includes(value));

console.log(intersection); // [3, 4, 5]

위의 예제에서는 filter() 메서드와 includes() 메서드를 사용하여 두 배열의 교집합을 구합니다. filter() 메서드는 주어진 조건을 만족하는 요소들로 새로운 배열을 구성하며, includes() 메서드는 배열에 특정 요소가 포함되어 있는지 확인합니다. 이렇게 함으로써 공통 요소들로 이루어진 새로운 배열을 얻을 수 있습니다.

방법 2: Set 객체 사용하기

const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];

const set1 = new Set(array1);
const set2 = new Set(array2);

const intersection = [...set1].filter(value => set2.has(value));

console.log(intersection); // [3, 4, 5]

위의 예제에서는 Set 객체를 이용하여 배열의 중복된 요소들을 제거합니다. Set 객체는 중복된 값을 허용하지 않기 때문에, 배열을 Set 객체로 변환하면 중복이 제거된 상태로 저장됩니다. 그 후에 filter() 메서드를 사용하여 두 Set 객체의 공통 요소들을 구하면, 교집합을 구할 수 있습니다.

결론

자바스크립트에서 두 배열의 교집합을 구하는 방법에 대해 알아보았습니다. filter() 메서드와 includes() 메서드를 사용하는 방법과 Set 객체를 이용하는 방법을 소개했는데, 각각의 방법에 따라 성능과 구현의 편리함이 다를 수 있습니다. 따라서 실제 상황에 맞게 적절한 방법을 선택하여 사용하시면 됩니다.