Javascript/Basic

[Basic] 깊은 복사, 얕은 복사 shallow copy, deep copy, slice, JSON.parse, JSON.stringify

yoonjong Park 2021. 5. 20.

개요

자바스크립트는 근본적으로 깊은 복사가 불가능하다.

이를 해결하기 위해 아래와 같은 짓을 한다.

 

기초적 방법

     let tempJson = JSON.parse(JSON.stringify(json));

 

위 방법이 깊은 복사를 하기 위한 가장 기초적인 방법이다.   배열은 slice로도 깊은 복사가 가능하다. (1 depth 배열인 경우)

그러나, 객체인 경우는 위 방식을 택하거나, 현재 기준으로 2가지 라이브러리를 사용하는 방법이 있다.

 

Lodash 와 Ramda

깊은 복사를 할 수 없어서 만들어진 라이브러리인데, 기본적으로 처리하는 방식은 같은 것으로 보인다.

(자바스크립트의 언어적 특성 때문에 이런 돌려차리를 해야 한다는 게 우습긴하다.)

왼쪽이 loadsh / 오른쪽이 ramda - 출처 : https://medium.com/@moonformeli 

 

자세한 내용은 아래 출처를 이용합시다.

출처:

https://bbaktaeho-95.tistory.com/37     

https://bit.ly/3oAyeLA

댓글