Javascript, Object 이 놈을 알아야 그 놈을 잡는다.

Javascipt에서 Object는 모든 객체의 슈퍼 타입(최상위 타입)입니다. Object를 더 많이 알수록 이 놈을 통해 파생된 그 놈들을 더 잘.. 알 수 있습니다. 이 글은 Object의 내용중 유용한 정적 매서드 몇가지를 살펴봅니다.

먼저 객체의 키(key)만을 배열로 가져오는 keys입니다.

const obj = {
    "key0": "value0",
    "key1": "value1",
    "key2": "value2"
}

const keys = Object.keys(obj)
console.log(keys) // ["key0", "key1", "key2"]

다음은 값(Value)만을 배열로 가져오는 values입니다.

const obj = {
    "key0": "value0",
    "key1": "value1",
    "key2": "value2"
}

const values = Object.values(obj)
console.log(values) // ["value0", "value1", "value2"]

그럼 키와 값 모두를 배열로 가져오기 위해서는? 바로 entries 정적 매서드를 사용하면 됩니다.

const obj = {
    "key0": "value0",
    "key1": "value1",
    "key2": "value2"
}

const entries = Object.entries(obj)
console.log(entries)
/*
[
    ["key0", "value0"],
    ["key1", "value1"],
    ["key2", "value2"]
]
*/

이제 반대로 위의 entries 정적 매서드로 가져온 결과를 통해 다시 원래의 객체를 만들고자 한다면? 바로 fromEntries 정적 매서드를 사용하면 됩니다.

const arr = [
    ["K1", "V1"], 
    ["K2", "V2"]
];

const obj = Object.fromEntries(arr);
console.log(obj); // {K1: "V1", K2: "V2"}

다음 예제는 지금까지와는 다른 흐름인데요. 객체를 복사하기 위한 Javascript 적인 방법은 여러가지가 있는데요. 그 중 Object의 assign 정적 매서드를 사용하는 방법이있습니다.

const a = {}
b = Object.assign(a, obj)
console.log(b, a === b, a === obj) 
// {key0: "value0", key1: "value1", key2: "value2"} true false

“Javascript, Object 이 놈을 알아야 그 놈을 잡는다.”에 대한 2개의 댓글

  1. 혹시 절 기억하실지 모르겠네요.
    관련 정보를 찾다보면 우연히도 본 블로그로 자주 오게 되네요.

    여전히 부지런하시고, 여전히 대단하십니다.
    형준님의 꾸준함과 다양한 개발적 접근에 늘 겸손해지고 감탄하곤합니다.

    1. 안녕하세요, 진권님!
      수년이 지났지만 여전히 기억하고 있습니다. ^^
      반갑구요!
      요즘 같은 때 건강하시고 늘 여유와 행복이란 단어가 함께 하시길 기원 드립니다!
      감사합니다~!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다