[Javascript] 배열 비교하는 방법

yes·2022년 3월 23일
0

Javascript

목록 보기
4/13
post-thumbnail

🔍두 배열 비교

const a = [1, 2, 3]
const b = [1, 2, 3]
console.log(a === b) // false

Javscript에서 두 배열을 비교할 때 ===으로 비교하게 되면 당연히 false값이 나오게 된다.
왜냐하면, 배열도 객체이기 때문이다.
우선, 이것이 이해 안 가는 분들은 Javascript data type부터 memory에 어떻게 저장되는지 공부해보자.

solution 1.

배열을 string으로 변환한다.
( JSON.stringify()사용 )

const a = [1, 2, 3]
const b = [1, 2, 3]
console.log(JSON.stringify(a) === JSON.stringify(b)) // true

array를 string으로 바꾸고 비교하기 때문에 결과값은 true가 된다.
하지만, 이렇게 했을 때는 array 안에 있는 값들이 같아도 순서가 바뀌면 false값이 나오게 된다.

solution 2.

두 배열이 서로 교집합이 존재하는지 여부에 따라서 문제를 푸는 과정이라면 solution 2 과정을 적용해보길 바란다.
filter와 includes을 사용하여 두 배열에 포함된 동일한 요소를 확인 할 수 있다.

const a = [1, 4, 3, 2];
const b = [5, 2, 6, 7, 1]; 
a.filter(it => b.includes(it)); // returns [1, 2]

filter 메소드 사용으로 a배열을 순회하면서 b배열에 a의 각 배열의 요소들이 포함되어 있는지에 따라서 true, false값을 통해 걸러지게 된다.
따라서 두 배열의 교집합이 나오게 된다.
교집합이 존재하는지 여부에 따라서 로직을 따로 또 짤 수 있다.

자신의 입맛에 맞게 맛있게 사용해보자😋


<출처>
https://hohoya33.tistory.com/134
https://velog.io/@bepyan/JS-%EB%B0%B0%EC%97%B4%EB%A5%BC-%EB%B9%84%EA%B5%90%ED%95%98%EB%8A%94-%EB%B2%95

0개의 댓글