객체 끼리 값을 비교 해서 다른 값만 끄집어내야하는 일이 생겼다..
예제 코드..
testA 와 testB를 testB기준에서 비교하려고한다.
(testA = 변경값 , testB = 원본값)
객체의 객체.. 즉 뎁스 상관없이 다른? 값을 끄집어내야한다.
그래서 만든 재귀 함수를 이용한 비교 코드이다..
비교할 값 두개를 받아와서
값이 객체가 아닐시는 객체간의 값을 비교해서 다를시 새로운 객체 변수에 담는다
만약 그 객체안의 값이 객체 일시 재귀호출 을 통해 다시한번 돌리고
리턴받은 depsObj 의 값의 key 개수가 0이 아닐때만 값을 넣는다
재귀함수를 통해서 뎁스 상관없이 객체일때는 계속 비교가 가능하다..
주의 ) javascript typeof 는 배열 또는 null 일때도 object 를 리턴한다..
null을 리턴하는건 자바스크립트의 초기 버그중 하나라는데.. 주의해서 사용하도록하자..
잘나온당 ㅎㅎ V
회사에서 여러 인풋으로 구성된 ui 에서 수정된 객체만 업데이트 api 에 넘겨주기위해서 만들게되었다
위의 예제는 단순히 다른 객체비교지만 앞서말한것과 같은 케이스에선
기존 list data 를 똑같은 다른 객체에다 복제(깊은복사) 해주고 저 로직을 돌리는식으로 진행하였다.
마무리로 깊은 복사 펑션..
'Javascript' 카테고리의 다른 글
[Javascript] 동작 엔진 (0) | 2021.10.29 |
---|---|
[Javascript] javascript study - to be modified later (0) | 2021.10.29 |
[Javascript] addEventListener vs onclick (0) | 2021.10.21 |
[ES6] filter 와 map 을 이용한 반복문 (0) | 2021.06.27 |
[ES6] 최신문법 6가지 (0) | 2021.06.27 |