๐ Map
- ํค์ ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ๊ฐ์ฒด์ด๋ค.
๊ตฌ๋ถ | ๊ฐ์ฒด | Map ๊ฐ์ฒด |
ํค๋ก ์ฌ์ฉํ ์ ์๋ ๊ฐ | ๋ฌธ์์ด ๋๋ ์ฌ๋ฒ ๊ฐ | ๊ฐ์ฒด ํฌํจํ ๋ชจ๋ ๊ฐ |
์ดํฐ๋ฌ๋ธ | X | O |
์์ ๊ฐ์ ํ์ธ | Object.keys(obj).length | map.size |
1. Map ๊ฐ์ฒด ์์ฑ
- Map ์์ฑ์ ํจ์๋ก ์์ฑํ๋ค.
const map = new Map();
console.log(map);
- ์ดํฐ๋ฌ๋ธ์ ์ธ์๋ก ์ ๋ฌ๋ฐ์ Map ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
- ์ด ๋ ์ธ์๋ก ์ ๋ฌ๋๋ ์ดํฐ๋ฌ๋ธ์ ํค์ ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์์๋ก ๊ตฌ์ฑ๋์ด์ผ ํ๋ค.
const map1 = new Map([
['key1', 'value1'],
['key2', 'value2']
]);
console.log(map1); // Map(2) ...
const map2 = new Map([1, 2]); // TypeError: ...
- ์ค๋ณต๋ ํค๋ฅผ ๊ฐ๋ ์์๊ฐ ์กด์ฌํ๋ฉด ๊ฐ์ด ๋ฎ์ด์์ด์ง๋ค. -> ์ค๋ณต๋ ํค๋ฅผ ๊ฐ๋ ์์๊ฐ ์กด์ฌํ ์ ์๋ค.
const map = new Map([
['key1', 'value1'],
['key1', 'value2']
]);
console.log(map); // Map(1) {'key1' => 'value2'}
2. ์์ ๊ฐ์ ํ์ธ
- Map.prototype.size ์ฌ์ฉํ๋ค.
- setter ํจ์ ์์ด getter ํจ์๋ง ์กด์ฌํ๋ ์ ๊ทผ์ ํ๋กํผํฐ -> ์ซ์๋ฅผ ํ ๋นํ์ฌ Map ๊ฐ์ฒด์ ์์ ๊ฐ์๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.