[JS] 배열 비교하기

codeCYJ·2022년 5월 30일
0

javaScript

목록 보기
11/35

단순 비교

JSON.stringify 로 문자열로 변경 후 비교하기

const arr1 = ['1','2','3','4','5'];
const arr2 = ['1','2'];
console.log(JSON.stringify(arr1) === JSON.stringify(arr2));   // false

교집합

filterincludes 사용
arr2에 includes 함수를 통해서 arr1의 값(x)이 있으면 true, 아니면 false를 반환하여 
arr1의 filter 함수를 통해 true 값만 걸러내 새로운 배열을 만든다.

const arr1 = ['1','2','3','4','5'];
const arr2 = ['1','2'];
console.log(arr1.filter(x => arr2.includes(x))); //['1','2']

차집합

arr2에 includes 함수를 통해서 arr1의 값(x)이 있으면 false, 아니면 true를 반환하여
arr1의 filter 함수를 통해 true 값만 걸러내 새로운 배열을 만든다.

const arr1 = ['1','2','3','4','5'];
const arr2 = ['1','2'];
console.log(arr1.filter(x => !arr2.includes(x))); // ['3','4','5']

대칭차집합

대칭차집합은 두 배열을 비교하여 각 배열안에 공통된 원소의 나머지 것들을 구하는 방식이다.
각배열의 차집합을 구한 후 concat 메소드를 통해 두 값을 합쳐준다.

const arr1 = ['1','2','3','4','5'];
const arr2 = ['1','2','6','7','8'];
let difference = arr1
                 .filter(x => !arr2.includes(x))
                 .concat(arr2.filter(x => !arr1.includes(x))); 
console.log(diffenrence); //['3','4','5','6','7','8']
profile
안녕하세요

0개의 댓글