[javascript] 객체의 특정 속성을 제외한 복사본 만들기

자바스크립트에서 객체의 특정 속성을 제외한 복사본을 만들고 싶을 때가 있습니다. 이를 위해 어떤 방법을 사용해야 할까요? 이 글에서는 자바스크립트에서 특정 속성을 제외한 객체의 복사본을 만드는 방법을 알려드리겠습니다.

1. Object.assign을 사용하는 방법

가장 간단하고 일반적인 방법은 Object.assign 메소드를 사용하는 것입니다. 이 메소드를 사용하면 속성을 복사하고 새로운 객체를 생성할 수 있습니다. 다음은 사용법과 예시입니다.

const obj = {
  prop1: 'value1',
  prop2: 'value2',
  prop3: 'value3'
};

const copiedObj = Object.assign({}, obj); // 모든 속성을 복사

delete copiedObj.prop1; // 특정 속성 제외

위의 예시에서 Object.assign 메소드를 사용하여 obj의 복사본인 copiedObj를 생성했습니다. 그 후, copiedObjprop1 속성을 제외하기 위해 delete 키워드를 사용했습니다. 이제 copiedObjobj와 모든 속성을 공유하지만 prop1 속성을 가지고 있지 않습니다.

2. 전개 연산자를 사용하는 방법

ES6 이후부터는 전개 연산자(...)를 사용하여 객체를 복사하는 방법도 가능합니다. 전개 연산자를 사용하여 객체를 복사하고 특정 속성을 제외할 수 있습니다. 다음은 사용법과 예시입니다.

const obj = {
  prop1: 'value1',
  prop2: 'value2',
  prop3: 'value3'
};

const { prop1, ...copiedObj } = obj; // 특정 속성 제외

console.log(copiedObj); // { prop2: 'value2', prop3: 'value3' }

위의 예시에서는 전개 연산자를 사용하여 obj 객체를 복사하고, { prop1, ...copiedObj } 구문에서 prop1 속성을 제외한 나머지 속성을 copiedObj에 할당했습니다. 따라서 copiedObj에는 prop1 속성이 제외된 복사본이 저장되게 됩니다.

참고 자료

위의 방법들을 사용하여 자바스크립트에서 객체의 특정 속성을 제외한 복사본을 만들 수 있습니다. 각 방법마다 장단점이 있으니 상황에 맞게 적절히 선택하여 사용하시면 됩니다.