[javascript] Immutable.js에서 제공하는 데이터 변환 메소드에는 어떤 것들이 있나요?

Immutable.js는 자바스크립트 라이브러리로, 불변 데이터 구조를 쉽게 관리할 수 있도록 도와줍니다. 이 라이브러리에서 제공하는 데이터 변환 메소드에는 다음과 같은 것들이 있습니다:

  1. set(): 지정된 키에 대한 값을 변경하거나 새로운 키와 값을 추가합니다. 이 때 원본 데이터를 수정하지 않고 새로운 Immutable 객체를 반환합니다.

예시:

import { Map } from 'immutable';

const data = Map({ name: 'John', age: 30 });
const newData = data.set('age', 31);

console.log(newData.get('age')); // 31
console.log(data.get('age')); // 30
  1. update(): 지정된 키에 대한 값을 업데이트하기 위해 주어진 함수를 적용합니다. 이 함수는 현재 값과 함께 호출되며, 새로운 값을 반환합니다. 또한, 만약 값이 없는 경우 초기값을 제공할 수 있습니다.

예시:

import { Map } from 'immutable';

const data = Map({ name: 'John', age: 30 });
const newData = data.update('age', age => age + 1);

console.log(newData.get('age')); // 31
console.log(data.get('age')); // 30
  1. delete(): 지정된 키와 해당 값의 쌍을 삭제한 새로운 Immutable 객체를 반환합니다.

예시:

import { Map } from 'immutable';

const data = Map({ name: 'John', age: 30 });
const newData = data.delete('age');

console.log(newData.has('age')); // false
console.log(data.has('age')); // true
  1. merge(): 다른 Immutable 객체나 일반 JavaScript 객체와 현재 객체를 병합하여 새로운 Immutable 객체를 반환합니다.

예시:

import { Map } from 'immutable';

const data = Map({ name: 'John', age: 30 });
const newData = data.merge({ age: 31, city: 'New York' });

console.log(newData.toJS()); // { name: 'John', age: 31, city: 'New York' }
console.log(data.toJS()); // { name: 'John', age: 30 }
  1. map(): 현재 Immutable 객체의 각 아이템에 대해 주어진 함수를 적용한 새로운 Immutable 객체를 반환합니다.

예시:

import { List } from 'immutable';

const data = List([1, 2, 3]);
const newData = data.map(item => item * 2);

console.log(newData.toJS()); // [2, 4, 6]
console.log(data.toJS()); // [1, 2, 3]

이외에도 다양한 데이터 변환 메소드와 불변 데이터 구조를 다루기 위한 기능들이 Immutable.js에서 제공됩니다. 추가적인 정보는 공식 문서를 참조해주세요.

참고 링크: Immutable.js 문서