JS/Javascript

[javascript] 객체 4 / 객체 삭제

ui-o 2025. 8. 21. 15:12
반응형

객체 삭제


객체 프로퍼티 삭제방법

1. delete 연산자

  • 가장 기본적인 방법
  • 객체에서 해당 프로퍼티 자체를 완전히 제거
  • 키 자체가 사라짐
  • 성능상 아주 큰 객체를 반복 삭제할 때는 조금 느릴 수 있음
// [문법]
delete 객체명.키명;
delete 객체명["키명"];
const user = { name: "철수", age: 20, city: "서울" };

delete user.age;          // 점 표기법
delete user["city"];      // 대괄호 표기법

console.log(user);
// { name: "철수" }

2. null 또는 undefined 할당

  • 프로퍼티를 아예 제거하는 대신, 값만 없애는 방식
  • 키(name, age)는 여전히 존재
  • 데이터만 비워야 할 때 사용
  • 프로퍼티는 유지, 값만 비움
// [문법]
객체명.키명 = null;
객체명.키명 = undefined;
const user = { name: "철수", age: 20 };

user.age = null;          // 값만 비움
user.name = undefined;

console.log(user);
// { name: undefined, age: null }

3. 구조 분해 할당 + 나머지 연산자(...)

  • 삭제 대신, 원본을 건드리지 않고 특정 프로퍼티를 제외한 새 객체를 만드는 방법
  • 원본은 그대로 유지
  • 불변성(immutability)을 지켜야 하는 상황(리액트 같은 환경)에서 자주 쓰임.
  • 원본 유지, 새 객체 생성
// [문법]
const { 삭제할키, ...새객체명 } = 기존객체;
const user = { name: "철수", age: 20, city: "서울" };

const { age, ...newUser } = user;

console.log(newUser);
// { name: "철수", city: "서울" }
// age키는 삭제하고, user 객체 속성을 사용하여 새로운 newUser 객체 생성

4. Object.assign + delete

  • 기존 객체를 복사하면서 특정 프로퍼티를 뺄 수도 있음
  • 원본 객체 유지, 새 객체 복사 후 삭제
// [문법]
const 새객체 = Object.assign({}, 기존객체);
delete 새객체.삭제할키;
const user = { name: "철수", age: 20, city: "서울" };

const newUser = Object.assign({}, user);
delete newUser.age;

console.log(newUser);
// { name: "철수", city: "서울" }

 

반응형