Object.keys, values, entries
Object.keys, values, entries
-
keys(), values(), entries() 와 같은 메서드
-
허용되는 자료 구조
Map
Set
Array
-
허용되는 자료 구조 외에 자료구조 직접 만들어서 사용하려면 기존에 구현된 메서드 쓰지 못하고 직접 커스텀 메서드 구현해야 함
-
Object.keys, values, entries
일반 객체에 사용가능한 메서드.
-
메서드
Object.keys(obj) : 키가 담긴 배열 반환
Object.values(obj) : 값이 담긴 배열 반환
Object.entries(obj) : [key, value] 쌍이 담긴 배열 반환
-
Map, Set, Array 에 적용되는 메서드와의 차이점
-
obj.keys() 가 아닌 Object.keys(obj) 호출
유연성 보장
JS에선 복잡한 자료구조 전체가 객체에 기반
커스텀 메서드와 Object 에서의 내장 메서드 둘다 적용 가능
-
iterable 객체가 아닌 객체의 한 종류인 배열 반환
하위 호완성 고려 (for..of)
-
-
심볼형 프로퍼티 무시
심볼형 키가 필요한 경우 심볼형 키만 배열 반환하는 메서드 Object.getOwnPropertySymbols 사용
모든 키 배열 형태로 반환하는 메서드 Object.ownKeys(obj) 사용
-
-
객체 변환
Object.entries, Object.fromEntries 순차적으로 적용하여 객체에도 배열 전용 메서드 사용 가능
-
순서
-
Object.entries(obj) 사용하여 객체 키-값 쌍 요소로 갖는 배열 찾음
-
1.에서 만든 배열에 map 등의 배열 전용 메서드 사용
-
2.에서 반환된 배열에 Object.fromEntries(array) 적용해 배열 다시 객체로 되돌림
-
-
요약
-
keys(), values(), entries() 같은 메서드는 Map, Set, Array 외엔 보장 안 됨.
-
자료구조 직접 만들어서 사용하려면 기존에 구현된 메서드 쓰지 못하고 커스텀 메서드 구현하거나 다른 방법 취해야 함.
-
Object.keys, values, entries 는 일반 객체에 사용 가능함
-
keys(), values(), entries() 와 다른 점은 인자에 객체 넣어서 사용한다는 점과 이터러블 객체가 아닌 객체의 한 종류인 배열을 반환 한다는 점.
-
심볼형 프로퍼티는 따로 메서드 사용해야 함.
-
객체 변환은 Object.entries(obj) 통해 키-값 쌍을 요소로 갖는 배열 얻은 후 Object.fromEntries(array) 적용해 다시 배열 객체로 되돌림