const person = {
firstName: "Namsun",
lastName: "Kim",
age: 1,
};다음과 같은 object가 있다고 하자.
age라는 key를 삭제하고 싶으면 어떻게 해야할까?
delete
- 객체의 속성을 제거
delete person.age;delete를 사용하면 안되는 이유
- object의 불변성(Immutability)을 해치게 된다.
const person = {
firstName: "Namsun",
lastName: "Kim",
age: 1,
};
console.log("person 삭제 전 : ", person);
delete person.age;
console.log("person 삭제 후 : ", person);
- 존재하지 않는 속성을 삭제하려고 하면 delete는 어떠한 작업도 없이 true를 반환한다.
const person = {
firstName: "Namsun",
lastName: "Kim",
age: 1,
};
delete person.age; //true반환불변성을 지키면서 object key를 삭제하는 방법
spread operator
const person = {
firstName: "Namsun",
lastName: "Kim",
age: 1,
};
console.log("person 삭제 전 : ", person);
const { age, ...otherKey } = person;
console.log("person 삭제 후 : ", person);
console.log("person 삭제 후 otherKey: ", otherKey);
Object.fromEntries + Object.entries
Object.fromEntries(
Object.entries(person).filter(([key]) => !key.includes("age")),
);
Object.entries
[key, value]쌍의 배열을 반환
Object.entries(person);[
["firstName", "Kim"],
["lastName", "Namsun"],
["age", 1],
]
Object.fromEntries
- 키값 쌍의 목록을 객체로 바꾼다.
Object.fromEntries([
["firstName", "Kim"],
["lastName", "Namsun"],
["age", 1],
]);{ firstName: 'Kim', lastName: 'Namsun', age: 1 }Object.fromEntries(
Object.entries(person).filter(([key]) => !key.includes("age")),
);