본문 바로가기

dev/기타

배열 중복 비교

2개의 배열의 중복을 비교하는 방법은 여러 가지 있는데

 

그중에 한 가지 방법을 설명하겠습니다.

 

===========================================================

var arr1 = [11, 12, 13, 14];
var arr2 = [11, 12];

arr1.forEach(function(v, i){
    var flag = false;

    arr2.forEach(function(w, j){
        if(v === w){
            flag = true;
            return false;
        }
    });

    if(flag === true){
        console.log(v);
    }
});

===========================================================

 

위의 소스는 2개의 배열에서 중복되는 요소를 구현한 것입니다.

 

소스를 설명하면 첫 번째 배열과 두 번째 배열을 이중 루프를 통해서 비교하고 있습니다.

 

이중 루프의 안쪽 루프 안에서 비교를 하다가

 

첫 번째 배열의 요소와 두 번째 배열의 요소가 같으면

 

flag를 true로 바꾸고 return false(===break;)를 통해 안쪽 루프를 멈춥니다.

 

여기서 flag는 중요한 역할을 하고 있습니다.

 

바깥쪽 루프의 요소가 안쪽 루프를 순환하면서 비교할 때

 

자신의 요소와 같은 요소가 있는지 확인하기 위해서 필요한 변수입니다.

(안쪽 루프를 끝까지 순환해서 중간에 빠진 것이 없는지 확인하기 위해)

 

소스가 제대로 돌아가는지 확인하기 위해 크롬 개발자 도구에서 실행하면

 

아래와 같은 결과를 확인할 수 있습니다.

 

중복 요소 소스 및 결과 화면

 

중복되는 요소가 제대로 표출되는 것을 확인할 수 있습니다.

 

flag 비교를 반대로 하면 중복되지 않는 요소를 확인할 수 있습니다.

 

중복되지 않는 요소 소스 및 결과 화면

'dev > 기타' 카테고리의 다른 글

PPT 매크로  (0) 2022.01.08
tcping 설치  (0) 2021.10.30
WSL2 설치  (1) 2021.02.17
어도비 플레이어 삭제  (0) 2021.01.16
maven index 에러  (0) 2020.03.14