WEB/JAVASCRIPT

[Javascript] 배열에서 교집합, 차집합, 배타적논리합 구하기

_yoonie 2023. 6. 26. 16:33

두 개 이상의 배열에서 차집합, 교집합, 배타적 논리합 등의 계산을 해야 할 때가 있다.


let array1 = [3,6,9,12];
let array2 = [2,4,6,8,10,12];

다음과 같은 array1, array2가 있다고 가정합니다.

 

# 차집합

array1.filter(x => !array2.includes(x));

filter함수에서 array2에 포함되지 않은 값을 필터링하여 차집합을 구할 수 있다.

 

 

# 교집합

array1.filter(x => array2.includes(x));

filter함수에서 array2에 포함된 값을 필터링하여 교집합을 구할 수 있다.

 

 

# 배타적 논리합

array1.filter(x => !array2.includes(x))
      .concat(array2.filter(x => !array1.includes(x)));

filter로 각각 구해준 다음 concat으로 두 배열을 합해주어 구한다.

 

# 합집합

바로 concat을 해버리면 중복된 값이 들어갈 수 있기 때문에, 교집합을 한 번 빼준다.

array1.concat(array2.filter(x => array1.includes(x)))

교집합을 빼주는게 귀찮다면, 다음에 포스팅할 Javascript Set 편을 참고!

728x90