반응형
이번 9편에서는 객체(Object)를 다룰 때 유용한 실무형 고급 유틸 함수들을 정리합니다. 데이터 변환, 키 관리, 병합 등을 효율적이고 안전하게 처리할 수 있는 방법을 다룹니다.
✅ 1. deepMerge (객체 깊은 병합)
📌 두 객체를 재귀적으로 병합
function deepMerge(target, source) {
for (const key in source) {
if (source[key] instanceof Object && key in target) {
Object.assign(source[key], deepMerge(target[key], source[key]));
}
}
return { ...target, ...source };
}
📌 활용 예시
- 설정 파일 병합
- 다국어 번역 파일 통합
✅ 2. invert (키와 값을 뒤집기)
📌 객체의 키와 값을 교환
function invert(obj) {
const result = {};
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
result[obj[key]] = key;
}
}
return result;
}
📌 활용 예시
- 매핑 테이블 반전
- 값 기반 조회 최적화
✅ 3. mapKeys (키 변환)
📌 키를 변환하여 새 객체 생성
function mapKeys(obj, keyMapper) {
const result = {};
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
result[keyMapper(key)] = obj[key];
}
}
return result;
}
📌 활용 예시
- API 필드명 변환
- 표준화된 데이터 구조 생성
✅ 4. mapValues (값 변환)
📌 값만 변환하여 새 객체 생성
function mapValues(obj, valueMapper) {
const result = {};
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
result[key] = valueMapper(obj[key]);
}
}
return result;
}
📌 활용 예시
- 값 일괄 포맷팅
- 설정 값 정규화
✅ 5. pickBy (조건에 맞는 키-값 쌍만 추출)
📌 조건을 만족하는 키-값 필터링
function pickBy(obj, predicate) {
const result = {};
for (const key in obj) {
if (obj.hasOwnProperty(key) && predicate(obj[key])) {
result[key] = obj[key];
}
}
return result;
}
📌 활용 예시
- 유효 데이터만 추출
- 활성 상태 데이터만 필터링
✅ 결론
객체(Object)는 자바스크립트의 핵심 데이터 구조입니다. 이번 시리즈에서 소개한 고급 조작 함수들을 활용하면 데이터 모델링과 변환 작업을 훨씬 깔끔하고 체계적으로 수행할 수 있습니다.
반응형
'Programing > javascript' 카테고리의 다른 글
자바스크립트 실무 유틸 함수 시리즈 13 - 프론트엔드 성능 측정을 위한 간단한 유틸 (0) | 2025.05.01 |
---|---|
자바스크립트 실무 유틸 함수 시리즈 12 - 배열 고차 함수(map, filter, reduce) (0) | 2025.05.01 |
자바스크립트 실무 유틸 함수 시리즈 11 - 비동기 처리 및 Promise 관련 (0) | 2025.04.29 |
자바스크립트 실무 유틸 함수 시리즈 10 - 함수형 프로그래밍(FP) 스타일 (0) | 2025.04.29 |
자바스크립트 실무 유틸 함수 시리즈 8 - 배열 고급 조작 (0) | 2025.04.29 |
자바스크립트 실무 유틸 함수 시리즈 7 - 문자열 정규 표현식 (0) | 2025.04.29 |
자바스크립트 실무 유틸 함수 시리즈 6 - 시간과 날짜 (0) | 2025.04.29 |
자바스크립트 실무 유틸 함수 시리즈 5 - 숫자와 통계 처리 (0) | 2025.04.29 |