본문 바로가기
JavaScript

JavaScript - 두 배열 비교해서 특정 값 찾기(splice, filter, includes)

by 새발개발JA 2022. 10. 18.
반응형

 

 

all 는 [ 0 - 9 까지의 숫자배열 ] 이고, part는 그 중 [ 몇몇 숫자만 들어있는 배열 ] 이다.

원래는 all 의 모든 숫자들을 가지고 있어야 되는데, 몇몇 녀석들이 도망가서 part 만 남았다.

도망간 녀석들이 (차집합) 누군지 찾고자 한다.

 

즉, 두배열을 비교해서 특정값을 찾아보려고 한다.

나는 두가지 풀이방식으로 풀어보았다.

 

 

아래에 필요한 배열들을 보자. [ 5랑 9 ] 가 집나갔으니 얘네만으로 이루어진 배열을 구할 것이다.

// 0 - 9 까지의 숫자중 5, 9 가 없다. // [5,9]
let all = [1,2,3,4,5,6,7,8,9,0];
let part = [1,2,3,4,6,7,8,0];

 

 

1. 2중 포문과 splice를 이용한다.

2중 포문으로 검사한 뒤, 

all 값과 === part 값이 같으면 all 에서 제거해버리고 배신자들만 남겨놓는 방식을 택하였다.

  for(var i=0; i < all.length; i++){
    for(var j=0; j < part.length; j++){
       if(all[i] === part[j]){
        all.splice(i, 1); // [5,9]
       }
    }
   }

 

 

 

2. filter 와 includes 를 이용한다. 

filter 로 all 을 돌려 all 의 값이 part 배열 내에 include 되지 않는 녀석들만 솎아내는 방식을 택하였다.

(코드 구성이 훨씬 간단하고 가시성도 좋다👍)

all.filter( v => !part.includes(v)); // [5,9]

 

 

 

 

반응형

댓글