-
[Javascript 이론] 객체의 프로퍼티 키, 값 불러오는 법To infinity/Javascript 이론 2021. 7. 8. 07:47
1. for..in문 사용
for (변수선언문 in 객체) {...}
1. 객체의 프로퍼티 개수만큼 순회한다.
2. 변수선언문에서 선언한 변수에 프로퍼티 키를 할당한다.
3. 따라서 프로퍼티 값을 불러오고 싶다면 객체[프로퍼티키] 를 불러와주면 된다.
말로만 보면 뭔소린지 모르니까 예시를 보자.
let result = { 'a':2, 'b':1 } let answer = [] for (const key in result) { answer.push(key) // ['a','b'] 키를 가져와 열거한다. answer.push(result[key]) // [2,1] 밸류을 가져와 열거한다. }
1) const key in result
// result의 key를 불러온다. 'a', 'b'
2) result[key]
//result의 key의 value를 불러온다. 2, 1
2. Ojbect.keys / values / entreis 메서드 사용
let result = { 'a':2, 'b':1 } Object.keys(result) // ['a','b'] Object.values(result) // [2,1] Object.entries(result) // [['a', 2], ['b, 1]]
for..in문은 객체 자신의 고유한 프로퍼티 뿐만 아니라 상속받은 프로퍼티도 열거하기 때문에 Object.prototype.hasOwnProperty 메서드를 통해 객체 자신의 프로퍼티인지 확인하는 추가처리가 필요하다.
따라서, 객체 자신의 고유한 프로퍼티만 열거하기 위해서는 for..in문 보다는 위 메서드를 사용하는 것이 좋다.
해당 메서드는 결과를 '배열'로 반환한다.
entires같은 경우에는 키와 밸류를 쌍의 배열로 만들어 반환한다.
'To infinity > Javascript 이론' 카테고리의 다른 글
[Javascript 이론] Object_함수는 일급객체, 함수 고유의 프로퍼티는? (0) 2021.07.08 [Javascript 이론] Object 프로퍼티 열거 시 특징 (for...in문) (0) 2021.07.08 [Javascript 이론] Map (feat. object) (0) 2021.07.04 [Javascript 이론] 일반함수, ES6 메서드 함수, 화살표함수 비교 (0) 2021.07.04 [Javascript] 객체리터럴 vs 생성자함수, 그리고 this (0) 2021.06.27