Programing/javascript

자바스크립트 실무 유틸 함수 시리즈 9 - Object 객체 고급 조작

2025. 4. 29. 18:49
반응형

이번 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
'Programing/javascript' 카테고리의 다른 글
  • 자바스크립트 실무 유틸 함수 시리즈 11 - 비동기 처리 및 Promise 관련
  • 자바스크립트 실무 유틸 함수 시리즈 10 - 함수형 프로그래밍(FP) 스타일
  • 자바스크립트 실무 유틸 함수 시리즈 8 - 배열 고급 조작
  • 자바스크립트 실무 유틸 함수 시리즈 7 - 문자열 정규 표현식
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478)
      • 금융 (61)
      • Programing (295)
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21)
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    It
    사고 싶은 책
    Java
    php
    자바스크립트
    js패턴
    자바스크립트유틸
    iT's MY LiFE
    위시리스트
    디자인패턴
    IT 관련
    IT블로그
    기초
    IT·컴퓨터
    JavaScript
    읽고 싶은 책
    블로그
    jsp
    자바
    SQL
Dongkkase
자바스크립트 실무 유틸 함수 시리즈 9 - Object 객체 고급 조작
상단으로

티스토리툴바