자바스크립트의 객체 다루기
- 그걸 알고 있었는가? 자바스크립트의 대부분의 요소들은(배열, 함수 등) 사실 객체다.
- 자바스크립트의 데이터 형식에는 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으로 지정하여, 배열에 저장하는 것을 알 수 있다.
(다양한 용례에 관하여, 추후에 추가하겠다)
반응형
'Language > JS(Node.js)' 카테고리의 다른 글
프론트엔드 면접 질문 정리 ② JavaScript 질문 (0) | 2021.05.14 |
---|---|
[JavaScript 내장함수 다루기 ②] Array.Prototype.Filter, 조건에 부합하는 값만 반환한다. (0) | 2021.05.12 |
[JavaScript 내장함수 다루기 ①] Array.Prototype.Sort, 자바스크립트로 정렬하기 (0) | 2021.05.06 |
[JavaScript] Scroll Event에 자주 쓰이는 변수/메소드 정리 (0) | 2020.11.13 |
[JavaScript] 객체란 무엇인가? (0) | 2020.11.12 |
댓글