37. Object.keys, values, entries
5595 단어 JavaScriptTILJavaScript
순회에 필요한 메서드 map.keys()
, map.values()
, map.entries()
를 알아보았다.
이 메서드들은 포괄적인 용도로 만들어졌고, 이것들을 사용할수 있는 3개의 자료구조가 있다.
- Map
- Set
- Array
앞서 배웠던 map, set에 사용되었던 메서드들이다.
하지만, 일반 객체에도 순회 관련 메서드가 있긴하다.
문법이 조금 다르지만 같은 이름을 가진 메서드가 구현되어있다.
Object.keys
- 키만을 가진 배열 리턴
Object.values
- 값만 담은 배열 리턴
Object.entries
- 키와 값을 쌍인 배열 리턴
우선 Map
, Set
, Array
에 사용되는 메서드와 차이점은 아래와 같다.
- 객체는 Object.keys(대상)
나머지는 대상.keys - 객체는 배열을 반환
나머지는 iterable 객체를 반환
let user = {
name: 'quakka',
age: 29,
};
Object.keys(user); // ['name', 'age']
Object.values(user); // ['quakka', 29]
Object.entries(user); // [ ['name', 'quakka'], ['age', 29] ]
* 심볼형 프로퍼티는 무시된다
위의 메서드들은 심볼형인 프로퍼티는 무시가 된다.
하지만 심볼형을 읽어올 수 있는 두가지 메서드가 존재한다.
1. Object.getOwnPropertySymbols -> 심볼형 키만을 리턴
2. Object.ownKeys(obj) -> 심볼형을 포함한 전체 키를 리턴
객체 변환
객체에는 map
, filter
, reduce
등의 고차함수를 사용하는 메서드가 있다.
하지만 Object.entries
와 Object.fromEntries
를 순차적으로 적용한다면 객체에도 배열 전용 메서드를 사용할 수 있다.
Object.entries(obj)
를 사용해 객체의 키값을 쌍으로 하는 요소를 가진 배열은 얻는다.- 만들어진 배열에
map
,filter
등의 메서드를 적용한다. - 위의 메서드를 통해 만들어진 새로운 배열에
Object.fromEntries(array)
를 적용해 다시 객체로 되돌린다.
let prices = {
banana: 1000,
orange: 2000,
meat: 4000,
};
let objectToArray = Object.entries(prices);
let mappingOfArray = objectToArray.map(([key, value]) => [key, value * 2]);
let arrayToObject = Object.fromEntries(mappingOfArray);
for(let key of Object.keys(arrayToObject)) {
console.log(arrayToObject[key]); // 2000, 4000, 8000
}
Author And Source
이 문제에 관하여(37. Object.keys, values, entries), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wldns12378/37.-Object.keys-values-entries저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)