객체 형태로 키를 사용할 경우 변수에 선언하여 넣어야한다
const rest = new Map();
rest.set([1,2], 'Test');
console.log(rest.get([1,2]);
> undefined
이유는 무엇일까?
- 키 set에 쓰였던 배열과 get에 쓰였던 배열은 눈으로 볼때는 동일한 요소이지만 memory 주소가 다르기 때문이다
const rest = new Map();
const keyArray = [1,2];
rest.set(keyArray, 'Test');
console.log(rest.get(keyArray));
> Test
set과 get 메소드에서 사용한 변수는 동일한 memory 주소에 있기 때문이다
Map iteration 2가지 방법
1. for..of
2. forEach()
for..of
let map = new Map();
map.set("first", "first value");
map.set("second", "second value");
map.set(3, "third value");
let map2 = new Map([
["first", "first value"],
["second", "second value"],
[3, "third value"],
]);
for (let [key, value] of map) {
console.log(key + ": " + value);
}
for (let [key, value] of map2.entries()) {
console.log(key + "= " + value);
}
for (let key of map.keys()) {
console.log(key);
}
for (let value of map2.values()) {
console.log(value);
}
let map = new Map();
map.set("first", "first value");
map.set("second", "second value");
map.set(3, "third value");
map.forEach(function(value, key) {
console.log(key + "= " + value);
})
참고사이트