Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 JSON 객체의 속성을 제거하는 방법

JavaScript에서 객체를 다루다 보면 특정 속성(property)을 삭제해야 하는 경우가 자주 발생합니다. 이 글에서는 JSON 객체에서 원하는 속성을 깔끔하게 제거하는 가장 좋은 방법을 소개합니다.

예제 객체 생성

먼저 다음과 같이 객체를 하나 만들어 보겠습니다.

const myObject = {
    "ircEvent": "PRIVMSG",
    "method": "newURI",
    "regex": "^https://.*"
};

여기서 우리가 해야 할 작업은 regex 속성을 제거하여 아래와 같은 새로운 myObject를 만드는 것입니다.

const myObject = {
    "ircEvent": "PRIVMSG",
    "method": "newURI"
};

delete 연산자로 속성 제거하기

객체에서 속성을 제거할 때는 delete 연산자를 사용합니다.

const myObject = {
    "ircEvent": "PRIVMSG",
    "method": "newURI",
    "regex": "^https://.*"
};
delete myObject['regex'];
console.log(myObject.hasOwnProperty("regex")); // false

위 코드에서 delete myObject['regex']가 실행되면 해당 속성이 객체에서 완전히 제거됩니다. 이후 hasOwnProperty() 메서드로 확인해 보면 false가 반환되는 것을 볼 수 있습니다.

C/C++의 delete 키워드와의 차이점

JavaScript의 delete 연산자는 C나 C++의 delete 키워드와는 전혀 다른 기능을 수행한다는 점에 유의해야 합니다.

  • JavaScript의 delete는 메모리를 직접 해제하지 않습니다.
  • 오직 객체에서 속성을 제거하는 단일 목적으로만 사용됩니다.
  • 메모리 관리는 JavaScript 엔진의 가비지 컬렉터(Garbage Collector)가 자동으로 처리합니다.

실행 결과

콘솔 출력 결과는 다음과 같습니다.

false

추가 팁: 구조 분해 할당 활용하기

원본 객체를 변경하지 않고 새로운 객체를 만들고 싶다면 구조 분해 할당(destructuring)과 나머지 연산자(rest operator)를 활용할 수도 있습니다.

const { regex, ...newObject } = myObject;
console.log(newObject);
// { ircEvent: "PRIVMSG", method: "newURI" }

이 방법은 불변성(immutability)을 유지해야 하는 React 같은 라이브러리 환경에서 특히 유용합니다.