두개의 배열안에는 object형태의 데이터들이 들어있습니다
두개의 배열에서 아래 그림처럼 arr배열과 arr1배열의 중복된 값을 arr2배열로 뽑아낼 에정입니다
let arr = [
{seq:1,name:"kim1"}
,{seq:2,name:"kim2"}
,{seq:3,name:"kim3"}
,{seq:4,name:"kim4"}
,{seq:5,name:"kim5"}
]
let arr1 =[
,{seq:2,name:"Lee2"}
,{seq:3,name:"Lee3"}
,{seq:6,name:"Lee6"}
]
let arr2 = arr.filter(x1 => arr1.some(x2 => x1.seq == x2.seq ));
console.log(arr2)
결과를 먼저 보자면 아래와같이 arr2에 seq=2 와 seq=3을 뽑아낼 수 있습니다.
물론 반복문을 사용해서 하나하나 값을꺼내 비교할 수 있겟지만 javascript에서 만들어 놓은 메소드들을 사용해서 간결하게 해결해 보았습니다
filter는 배열의 값을 하나씩 꺼내서 true 인경우 arr2 에 담고 , false인경우 다음으로 넘어가는 동작을 진행합니다
some의 경우 배열의 값을 하나씩 꺼내지만 조건에 충족하는 경우 true를 바로 반환하고 종료합니다.( false인경우 배열끝까지 검색 )