JavaScript에서 두 배열의 대칭 차집합 찾는 방법
Source: Dev.to
접근 방식 개요
두 배열을 비교하여 하나의 배열에만 존재하고 두 개 모두에 존재하지 않는 값들만 포함하는 새로운 배열을 반환합니다. 즉, 두 배열에 모두 나타나는 값은 제거합니다.
단계 1: arrayOne 필터링
arrayOne.filter(item => !arrayTwo.includes(item))
arrayOne의 각 항목에 대해 arrayTwo에 포함되지 않았는지 확인합니다. arrayTwo에 존재하지 않는 값만 반환됩니다.
단계 2: arrayTwo 필터링
arrayTwo.filter(item => !arrayOne.includes(item))
이번에는 arrayOne에 포함되지 않은 값만 반환합니다.
단계 3: 결과 병합
const result = arrayOne
.filter(item => !arrayTwo.includes(item))
.concat(arrayTwo.filter(item => !arrayOne.includes(item)));
Array.prototype.concat()을 사용해 두 개의 필터링된 배열을 병합합니다. 최종 배열(result)은 두 원본 배열 사이의 대칭 차이를 포함합니다—즉, 오직 하나의 배열에만 나타나는 값들입니다.
이 방법은 간단하고 가독성이 높으며 이해하기 쉬워 초보자에게 좋은 선택입니다. 댓글에 여러분만의 해결책을 공유해 주세요! 🔥