Language/JS(Node.js)

[JavaScript 객체 파헤치기 ①] Object.key(obj), 객체의 필드 값을 배열로 반환해준다

Joonfluence 2021. 5. 12.

자바스크립트의 객체 다루기

  • 그걸 알고 있었는가? 자바스크립트의 대부분의 요소들은(배열, 함수 등) 사실 객체다.
  • 자바스크립트의 데이터 형식에는 Primitive Types(원시타입)와 Non Primitive Types(비원시타입)로 나뉜다. 전자는 string, number, null, boolean, undefined, symbol 총 6개가 속하고 후자는 functions, arrays and objects가 속하는데, 이들 역시 전부 객체로 간주된다.
  • 이와 관련하여선 추후에 포스팅으로 설명하겠다. 만약 관심이 있는 사람은 해당 글을 참고하면 좋을 것이다.

객체란?

  • '객체란 무엇인가'에 대해서는 이미 블로그에서 다룬 바 있다. 내용을 요약하면 객체란 각각 키(key)와 값(value)로 구성된 형태의 데이터 형식이다. 그리고 자바스크립트에선 단순히 변수 뿐 아니라 함수도 객체 안에 저장할 수 있어, 변수와 함수를 정돈하는 용도로 사용할 수 있다. (ES6의 클래스 문법은 사실 함수이고, 함수는 객체라는 사실 떠올린다면, 이 설명이 더 와닿을 것이다.)

Object.key(obj) : 객체의 필드 값을 배열로 반환

  • JS로 코딩테스트 문제를 풀다보면, 객체의 필드 값만 조회할 필요가 있다. 그 때 사용하는 것이 Object 객체의 key(obj) 메소드(여기서 함수를 메소드라고 명명한 까닭은 여기서 Object가 클래스와 같은 역할을 하기 때문이다)이다.

let clothes = [["yellowhat", "headgear"], ["bluesunglasses", "eyewear"], ["green_turban", "headgear"]];
let types = {};
    for (let cloth of clothes){
            // types에 옷의 종류가 지정됐다면 +1을 
        if(types[cloth[1]]){
            types[cloth[1]]++;
        } else {
            // types에 옷의 종류가 지정되지 않으면 1을
            types[cloth[1]]=1;
        }
    }

console.log(types); // { headgear: 2, eyewear: 1 }
console.log(Object.keys(types)); // [ 'headgear', 'eyewear' ]
  • 이처럼 출력 결과, 객체의 필드 값만 String으로 지정하여, 배열에 저장하는 것을 알 수 있다.

(다양한 용례에 관하여, 추후에 추가하겠다)

반응형

댓글