Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 객체를 Map으로 변환하는 방법

JavaScript를 사용하다 보면 일반 객체(Object)Map 자료구조로 변환해야 하는 경우가 종종 있습니다. 예를 들어, 다음과 같이 키-값 쌍으로 이루어진 객체가 있다고 가정해 보겠습니다.

const obj = {
  name: "Jai",
  age: 32,
  occupation: "Software Engineer",
  address: "Dhindosh, Maharashtra",
  salary: "146000"
};

객체를 Map으로 변환하는 함수

이런 객체를 인자로 받아 Map으로 변환하는 JavaScript 함수를 작성할 수 있습니다. 핵심 아이디어는 Object.keys()로 객체의 모든 키를 가져온 뒤, 반복문을 통해 각 키-값 쌍을 map.set()으로 삽입하는 것입니다.

예제 코드

const obj = {
  name: "Jai",
  age: 32,
  occupation: "Software Engineer",
  address: "Dhindosh, Maharashtra",
  salary: "146000"
};

const objectToMap = obj => {
  const keys = Object.keys(obj);
  const map = new Map();
  for (let i = 0; i < keys.length; i++) {
    // 새로운 키-값 쌍을 Map에 삽입
    map.set(keys[i], obj[keys[i]]);
  }
  return map;
};

console.log(objectToMap(obj));

출력 결과

위 코드를 실행하면 콘솔에 다음과 같이 출력됩니다.

Map(5) {
  'name' => 'Jai',
  'age' => 32,
  'occupation' => 'Software Engineer',
  'address' => 'Dhindosh, Maharashtra',
  'salary' => '146000'
}

더 간결한 방법: Object.entries() 활용

ES2017 이상의 환경이라면 Object.entries()Map 생성자를 조합해 한 줄로 처리할 수도 있습니다.

const map = new Map(Object.entries(obj));
console.log(map); // 위 예제와 동일한 결과

왜 Map을 사용할까?

Map은 키로 문자열 외에도 객체나 함수 등 모든 값을 사용할 수 있고, size 속성으로 요소 개수를 바로 확인할 수 있으며, 데이터 삽입·삭제와 순회에 최적화되어 있어 키-값 데이터를 동적으로 다루는 작업에 유리합니다.