Programing/javascript

자바스크립트 실무 유틸 함수 시리즈 20 - 배열 비교 및 동기화를 위한 유틸

2025. 5. 1. 13:30
반응형

이번 20편에서는 배열 간의 차이를 비교하고 동기화할 때 유용한 자바스크립트 유틸 함수들을 정리합니다. 데이터 변경 사항 추적, 차이점 필터링, 병합 등의 작업을 쉽게 수행할 수 있습니다.


✅ 1. arrayDifference (두 배열 간 차이값 구하기)

📌 A 배열에는 있고 B 배열에는 없는 항목 반환

function arrayDifference(a, b) {
  return a.filter(item => !b.includes(item));
}

📌 활용 예시

(예: 삭제된 항목 목록 추출)

const before = ['a', 'b', 'c'];
const after = ['a', 'c'];
const removed = arrayDifference(before, after); // ['b']

✅ 2. arrayIntersection (공통 요소 추출)

📌 두 배열에 모두 존재하는 항목 반환

function arrayIntersection(a, b) {
  return a.filter(item => b.includes(item));
}

📌 활용 예시

(예: 선택 항목과 권한 목록의 교집합 구하기)

const selected = ['read', 'write'];
const allowed = ['read', 'delete'];
const valid = arrayIntersection(selected, allowed); // ['read']

✅ 3. arrayEquals (배열 내용 동일 여부 확인)

📌 배열의 순서와 값 모두 비교

function arrayEquals(a, b) {
  return a.length === b.length && a.every((val, index) => val === b[index]);
}

📌 활용 예시

(예: 이전 상태와 현재 상태 비교)

const isSame = arrayEquals([1, 2], [1, 2]); // true

✅ 4. arraySymmetricDiff (배타적 차집합 구하기)

📌 A 또는 B에만 존재하는 요소 반환

function arraySymmetricDiff(a, b) {
  return [...a.filter(x => !b.includes(x)), ...b.filter(x => !a.includes(x))];
}

📌 활용 예시

(예: 양쪽에서 추가되거나 삭제된 값 모두 보기)

arraySymmetricDiff(['a', 'b'], ['b', 'c']); // ['a', 'c']

✅ 5. syncArrays (배열 병합 및 중복 제거)

📌 두 배열을 병합하고 중복 제거하여 새로운 배열 반환

function syncArrays(a, b) {
  return Array.from(new Set([...a, ...b]));
}

📌 활용 예시

(예: 기존 선택값과 새로 추가된 값 병합)

syncArrays(['a', 'b'], ['b', 'c']); // ['a', 'b', 'c']

✅ 결론

배열 비교 및 동기화는 데이터 업데이트와 상태 관리에서 매우 중요한 부분입니다. 이번 시리즈에서 다룬 유틸 함수들을 사용하면 복잡한 배열 처리도 간결하고 안정적으로 구현할 수 있습니다.

반응형

'Programing > javascript' 카테고리의 다른 글

자바스크립트 실무 유틸 함수 시리즈 24 - 접근성 향상을 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 23 - 브라우저 환경 감지 및 대응 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 22 - URL 및 쿼리 파라미터 처리 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 21 - 정규 표현식을 활용한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 19 - 로컬 스토리지 / 세션 스토리지를 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 18 - 스크롤 관련 유틸  (1) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 17 - 이벤트 제어를 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 16 - HTML 요소 조작을 위한 유틸  (0) 2025.05.01
'Programing/javascript' 카테고리의 다른 글
  • 자바스크립트 실무 유틸 함수 시리즈 22 - URL 및 쿼리 파라미터 처리 유틸
  • 자바스크립트 실무 유틸 함수 시리즈 21 - 정규 표현식을 활용한 유틸
  • 자바스크립트 실무 유틸 함수 시리즈 19 - 로컬 스토리지 / 세션 스토리지를 위한 유틸
  • 자바스크립트 실무 유틸 함수 시리즈 18 - 스크롤 관련 유틸
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)
  • 인기 글

  • 최근 댓글

  • 태그

    Java
    자바스크립트
    IT·컴퓨터
    It
    IT블로그
    jsp
    JavaScript
    iT's MY LiFE
    js패턴
    php
    위시리스트
    SQL
    읽고 싶은 책
    사고 싶은 책
    블로그
    자바
    디자인패턴
    IT 관련
    기초
    자바스크립트유틸
Dongkkase
자바스크립트 실무 유틸 함수 시리즈 20 - 배열 비교 및 동기화를 위한 유틸
상단으로

티스토리툴바