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