본문 바로가기

개발

JS 여집합 찾아내기.

728x90

 

const A = [1, 2, 3, 4];
const B = [1, 3, 5, 7];

const diff = A.filter((x) => !B.includes(x));
console.log(diff); // [2, 4]

 

ES6 의 'Set' 을 이용한 방법은 다음과 같다.

let a = new Set([1, 2, 3, 4]);
let b = new Set([1, 3, 5, 7]);

let a_minus_b = new Set([...a].filter((x) => !b.has(x)));
let b_minus_a = new Set([...b].filter((x) => !a.has(x)));
let a_intersect_b = new Set([...a].filter((x) => b.has(x)));

console.log([...a_minus_b]); // [2, 4]
console.log([...b_minus_a]); // [5, 7]
console.log([...a_intersect_b]); // [1, 3]