[javascript] Immutable.js에서 제공하는 데이터 병합 메소드에는 어떤 것들이 있나요?
Immutable.js는 JavaScript에서 불변성을 유지하기 위한 라이브러리입니다. Immutable.js에서 데이터 병합을 위해 제공하는 메소드는 다양합니다. 몇 가지 중요한 메소드들을 살펴보겠습니다.
merge()
메소드: 이 메소드는 두 개의 Immutable.Map이나 Immutable.Record를 병합하는 데 사용됩니다.merge()
메소드는 첫 번째 매개변수로 병합 대상 Immutable 객체를 받고, 두 번째 매개변수로 병합할 Immutable 객체를 받습니다. 이 메소드를 호출하면 두 객체가 병합된 새로운 Immutable 객체를 반환합니다. 기존의 객체는 변경되지 않습니다.
예시 코드:
const { Map } = require('immutable');
const map1 = Map({ a: 1, b: 2 });
const map2 = Map({ b: 3, c: 4 });
const mergedMap = map1.merge(map2);
console.log(mergedMap.toJS()); // { a: 1, b: 3, c: 4 }
mergeDeep()
메소드: 이 메소드는merge()
와 유사하지만 중첩된 Immutable.Map이나 Immutable.Record를 병합할 때 사용됩니다.mergeDeep()
메소드는 첫 번째 매개변수로 병합 대상 Immutable 객체를 받고, 두 번째 매개변수로 병합할 Immutable 객체를 받습니다. 이 메소드 또한 두 객체가 병합된 새로운 Immutable 객체를 반환하며, 기존의 객체는 변경되지 않습니다.
예시 코드:
const { Map } = require('immutable');
const map1 = Map({ a: 1, b: Map({ c: 2 }) });
const map2 = Map({ b: Map({ d: 3 }), e: 4 });
const mergedMap = map1.mergeDeep(map2);
console.log(mergedMap.toJS()); // { a: 1, b: { c: 2, d: 3 }, e: 4 }
mergeWith()
메소드: 이 메소드는merge()
와 유사하지만 병합 시 특정 규칙을 적용하기 위해 사용됩니다.mergeWith()
메소드는 첫 번째 매개변수로 병합 대상 Immutable 객체를 받고, 두 번째 매개변수로 병합할 Immutable 객체를 받습니다. 세 번째 매개변수로는 사용자가 정의한 병합 규칙이 들어갑니다. 이 메소드는 두 객체가 병합된 새로운 Immutable 객체를 반환하며, 기존의 객체는 변경되지 않습니다.
예시 코드:
const { Map } = require('immutable');
const map1 = Map({ a: 1, b: 2 });
const map2 = Map({ b: 3, c: 4 });
const mergedMap = map1.mergeWith((oldVal, newVal) => oldVal + newVal, map2);
console.log(mergedMap.toJS()); // { a: 1, b: 5, c: 4 }
이외에도 Immutable.js는 mergeIn()
, mergeDeepIn()
등의 다양한 메소드를 제공합니다. 이러한 메소드들을 사용하면 Immutable 데이터를 효과적으로 병합할 수 있습니다.
참고 자료: