본문으로 건너뛰기

객체 메서드 심화

객체 메서드 심화

자바스크립트 객체는 데이터를 효과적으로 구조화하고 관리할 수 있게 해주는 중요한 자료형(data type)입니다.

이번에는 객체의 키, 값, 속성을 다루는 기본 메서드들을 알아보겠습니다.


Object.keys(obj)

이 메서드는 객체의 모든 키를 배열로 반환합니다.

person 객체의 키를 배열로 반환
const person = {
name: '지민',
age: 28,
city: '서울',
};

const keys = Object.keys(person);
console.log(keys); // ["name", "age", "city"]

Object.values(obj)

객체의 모든 값을 배열로 반환합니다.

person 객체의 값들을 배열로 반환
const person = {
name: '지민',
age: 28,
city: '서울',
};

const values = Object.values(person);
console.log(values); // ["지민", 28, "서울"]

Object.entries(obj)

객체의 모든 키-값 쌍을 2차원 배열로 반환합니다.

person 객체의 키-값 쌍을 2차원 배열로 반환
const person = {
name: '지민',
age: 28,
city: '서울',
};

const entries = Object.entries(person);
console.log(entries);
// [["name", "지민"], ["age", 28], ["city", "서울"]]

사용 예시: 객체 순회하기

객체의 각 속성을 순회하면서 작업을 수행하고 싶을 때, Object.keysObject.entries를 활용하면 유용합니다.

예시: 객체의 모든 값을 출력하기

객체의 모든 값 출력하기
const person = {
name: '지민',
age: 28,
city: '서울',
};

for (let key of Object.keys(person)) {
console.log(person[key]);
}

// 또는

for (let [key, value] of Object.entries(person)) {
console.log(value);
}

기타 객체 관련 메서드

  • Object.assign(target, ...sources): 하나 이상의 출처 객체로부터 모든 열거 가능한 속성을 대상 객체로 복사합니다. 대상 객체를 반환합니다.

    객체 병합하기
    let obj1 = { a: 1, b: 2 };
    let obj2 = { b: 3, c: 4 };

    let combined = Object.assign({}, obj1, obj2);
    console.log(combined); // { a: 1, b: 3, c: 4 }
  • Object.freeze(obj): 객체를 동결하여 속성들이 추가, 제거, 수정될 수 없게 만듭니다.

    객체 동결하기
    Object.freeze(person);
    person.major = 'Software'; // 에러! 동결된 객체에는 속성을 추가할 수 없습니다