브렌쏭의 Veritas_Garage

JS 배열과 객체 복사하기 본문

[Project_하다]/[Project_공부]

JS 배열과 객체 복사하기

브렌쏭 2022. 3. 16. 16:03

Array, Object Copying (Shallow Copy & Deep Copy)

1. 얕은 복사 : Shallow copy

//만약
object0 = {
	name : brent,
    gender : male,
    hobby : {
		first : coding
        second : sleep
    }
}
//일 때, object1 에 0를 얕은 복사 하기 위해서는 

let object1 = { ...object0 }

//가 된다. 그러나 0내부의 hobby항목은 주소값이 그대로 첨부되어 복사가 아니라 원본을 참조한다

2. 깊은 복사 : Deep copy

//만약

object0 = {
	name : brent,
    gender : male,
    hobby : {
		first : coding
        second : sleep
    }
}
일 때, 0내부의 hobby까지 복사하기 위해서는 

object1 = JSON.parse(JSON.stringify(object0))

해야한다. 그런데 이 방법은 성능이 구리다

3. Using lodash : 로대쉬

lodash를 설치하고 

var objects = [{ 'a': 1 }, { 'b': 2 }];
 이라면, 
 
var deep = _.cloneDeep(objects);

console.log(deep[0] === objects[0]);
// => false
Comments