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

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

JavaScript 개발을 하다 보면 일반 객체(Object)를 Map 객체로 변환해야 하는 경우가 종종 있습니다. 다음과 같은 키-값 쌍으로 구성된 객체가 있다고 가정해 보겠습니다.

const obj = {
    name: "Vikas",
    age: 45,
    occupation: "Frontend Developer",
    address: "Tilak Nagar, New Delhi",
    experience: 23,
};

우리는 이렇게 키-값 쌍으로 이루어진 객체를 인수로 받아 Map 객체로 변환하는 JavaScript 함수를 작성해야 합니다.

구현 예제

먼저 Object.keys() 메서드와 반복문을 활용한 전통적인 방식의 코드를 살펴보겠습니다.

const obj = {
    name: "Vikas",
    age: 45,
    occupation: "Frontend Developer",
    address: "Tilak Nagar, New Delhi",
    experience: 23,
    salary: "98000"
};

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(6) {
    'name' => 'Vikas',
    'age' => 45,
    'occupation' => 'Frontend Developer',
    'address' => 'Tilak Nagar, New Delhi',
    'experience' => 23,
    'salary' => '98000'
}

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

반복문 없이 Object.entries() 메서드를 사용하면 한 줄로 동일한 결과를 얻을 수 있습니다. Object.entries()는 객체의 각 키-값 쌍을 배열 형태로 반환하며, 이는 Map 생성자에 바로 전달할 수 있습니다.

const map = new Map(Object.entries(obj));
console.log(map);

정리

Map은 객체와 달리 키의 타입 제약이 적고, 삽입 순서가 보장되며, size 속성으로 요소 개수를 손쉽게 확인할 수 있는 장점이 있습니다. 상황에 맞게 위 두 가지 방법 중 하나를 선택하여 객체를 Map으로 변환해 활용하시기 바랍니다.