JavaScript - Map 생성 및 초기화, 3가지 방법

Javascript에서 Map을 생성하고 초기화하는 방법을 소개합니다.

1. 배열로 Map 생성 및 초기화

Map은 아래와 같이 new Map()으로 생성할 수 있습니다. 이렇게 생성된 Map은 어떤 요소도 갖고 있지 않습니다.

let myMap = new Map();

만약 Map 생성과 동시에 요소들을 갖고 있게 초기화하려면, 아래와 같이 2배열을 생성자의 인자로 전달하면 됩니다. 배열 안에 [key, value] 형태의 배열로 요소를 추가하면 됩니다.

let myMap = new Map([
  ['c', 2],
  ['a', 4],
  ['d', 1],
  ['b', 3],
]);

console.log(myMap);

Output:

Map(4) { 'c' => 2, 'a' => 4, 'd' => 1, 'b' => 3 }

2. Object로 Map 생성 및 초기화

Map을 생성하면서 Object의 내용을 요소로 추가할 수도 있습니다.

아래 예제에서 Object.entries(obj)는 Object의 key와 value를 2차 배열로 만들어 리턴합니다. 2차 배열을 Map의 생성자로 전달하여 초기화를 합니다.

let obj = {'c': 2, 'a': 4, 'd': 1, 'b': 3};

let myMap = new Map(Object.entries(obj));

console.log(myMap);

Output:

Map(4) { 'c' => 2, 'a' => 4, 'd' => 1, 'b' => 3 }

참고로, Object.entries(obj)의 리턴 값을 출력해보면 2차 배열이 리턴되는 것을 확인할 수 있습니다.

let obj = {'c': 2, 'a': 4, 'd': 1, 'b': 3};
console.log(Object.entries(obj));

Output:

[ [ 'c', 2 ], [ 'a', 4 ], [ 'd', 1 ], [ 'b', 3 ] ]

3. Map 생성 후 요소 추가

Map.set(key, value)는 Map에 key-value 요소를 추가합니다.

아래와 같이 비어있는 Map을 생성하고, 생성 후 set()으로 요소들을 추가할 수 있습니다.

let myMap = new Map();
myMap.set('c', 2);
myMap.set('a', 4);
myMap.set('d', 1);
myMap.set('b', 3);

console.log(myMap);

Output:

[ [ 'c', 2 ], [ 'a', 4 ], [ 'd', 1 ], [ 'b', 3 ] ]
Loading script...
codechachaCopyright ©2019 codechacha