์๋ฐ์คํฌ๋ฆฝํธ์ ๋ด์ฅ ๋ฉ์๋๋ก ํค์ ๊ฐ์ ํํ๋ก ๋์ด ์์ผ๋ฉฐ ์๋ฃํ์ ์๊ด์์ด ๋ชจ๋ ๊ฐ์ ๋ฃ์ ์ ์๋ค.
๐ก Key : Value ํ์์ผ๋ก ์ธ์๋ฅผ ์ ์ฅํ ์ ์๋ค.
๐ก new Map()์ผ๋ก ๋น Map๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
- Map.prototype.set(key, value) => Map ๊ฐ์ฒด์ ํค์ ํด๋นํ๋ ๊ฐ์ ์ถ๊ฐํ๋ค.
- Map.prototype.has(key) => Map ๊ฐ์ฒด ์์ ํด๋น๋๋ Key์ ๊ฐ์ ๋ฐ๋ผ Bool๊ฐ์ผ๋ก ๋ฐํํ๋ค.
- Map.prototype.get(key) => ํด๋น ๋๋ ํค์ ๊ฐ์ ๋ฐํํ๋ค.
- Map.prototype.delete(key) => ํด๋น ๋๋ ํค์ ๊ฐ์ ์ญ์ ํ๋ค.
- Map.prototype.keys() => Map ๊ฐ์ฒด ์์ ํด๋น๋๋ Key์ ์ด๋ฆ์ ์ถ๋ ฅ
- Map.prototype.values() => Map ๊ฐ์ฒด ์์ ํด๋น๋๋ Value์ ๊ฐ์ ์ถ๋ ฅ
- Map.prototype.clear() => Map ๊ฐ์ฒด๋ฅผ ๋น Map ๊ฐ์ฒด๋ก ์ด๊ธฐํํ๋ค.
- Map.size => ๋ฉ์๋๋ ์๋๊ณ ํ๋กํผํฐ์ด๋ฉฐ Map์์ ์ธ์์ ๊ฐ์๋ฅผ ํ์ธํ๋ค.
const myMap = new Map(); // Map๊ฐ์ฒด ์์ฑ myMap.set('name', 'Kim'); // ๊ฐ์ฒด Key = name, Value = Kim ์์ฑ console.log(myMap.get('name')); // Kim ์ถ๋ ฅ myMap.set('age', 20); // ๊ฐ์ฒด ์ถ๊ฐ myMap.set('city', 'Seoul'); // ๊ฐ์ฒด ์ถ๊ฐ console.log(myMap); // Map(3) { 'name' => 'Kim', 'age' => 20, 'city' => 'Seoul' } ์ถ๋ ฅ console.log(myMap.keys()); // [Map Iterator] { 'name', 'age', 'city' } ์ถ๋ ฅ console.log(myMap.values()); // [Map Iterator] { 'Kim', 20, 'Seoul' } ์ถ๋ ฅ console.log(myMap.size) // 3 ์ถ๋ ฅ console.log(myMap.has('name')); // true ์ถ๋ ฅ myMap.delete('name'); console.log(myMap); // Map(2) { 'age' => 20, 'city' => 'Seoul' } ์ถ๋ ฅ myMap.clear(); // Map ์ด๊ธฐํ console.log(myMap); // Map(0) {} ์ถ๋ ฅ
1. Map์ Obj์ ๋ค๋ฅด๊ฒ forEach๋ฌธ์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
const Obj = { name : 'Kim', age: 20, city: 'Seoul' } // ๊ฐ์ฒด ์์ฑ const myMap = new Map(); myMap.set('name', 'Kim'); myMap.set('age', 20); myMap.set('city', 'Seoul'); // Map ์์ ๊ฐ์ฒด ์์ฑ myMap.forEach((value) => console.log(value)); // Kim , 20 , Seoul ์ถ๋ ฅ Obj.forEach((value) => console.log(value)); // ์ค๋ฅ ๋ฐ์
forEach๋ฌธ์ ๋ฐฐ์ด์ ๋ฉ์๋์ด๋ฏ๋ก Obj๋ก ์ฌ์ฉํ ์ ์์ง๋ง Map์ forEach ๋ฉ์๋๋ฅผ ์ง์ํ๋ค.
Obj์ ๊ฐ์ ์์ฐจ์ ์ผ๋ก ํ์ธํ ๋ ค๋ฉด for in ๋ฌธ์ ์ฌ์ฉํด์ผํ๋ค.const Obj = { name : 'Kim', age: 20, city: 'Seoul' } for(let index in Obj) { console.log(Obj[index]); // Kim, 20, Seoul ์ถ๋ ฅ }
2. Map์ Obj์ ๋ค๋ฅด๊ฒ Key๊ฐ์ Number Type์ด ๊ฐ๋ฅํ๋ค.
const Obj = { name : 'Kim', age: 20, city: 'Seoul' } Obj[0] = 0; // Obj์ ํค 0๊ณผ ๊ฐ 0์ธ ๊ฐ์ฒด ์ถ๊ฐ const myMap = new Map(); myMap.set('name', 'Kim'); myMap.set('age', 20); myMap.set('city', 'Seoul'); myMap.set(0, 0); // Map์ ํค 0๊ณผ ๊ฐ 0์ธ ๊ฐ์ฒด ์ถ๊ฐ console.log(Obj); // { '0': 0, name: 'Kim', age: 20, city: 'Seoul' } ์ถ๋ ฅ console.log(myMap); // Map(4) { 'name' => 'Kim', 'age' => 20, 'city' => 'Seoul', 0 => 0 }
์ด์ ๊ฐ์ด Key๊ฐ์ ์ซ์ํ์ด ๊ฐ๋ฅํ๋ค.