map์ React.js์์๋ ์ฃผ๋ก ๋ฐฐ์ด๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๋ฟ๋ ค์ค ๋ ๋ง์ด ์ฌ์ฉํ์๋๋ฐ, ํ์ ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉ๋ฒ์ด ์กฐ๊ธ ํน์ดํ ๊ฒ ๊ฐ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.
1. Map์ด๋?
- ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ์คํฌ๋ฆฝํธ์์ ์ ๊ณต๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ค ํ๋๋ก, Key์ Value์ ์์ ์ ์ฅํ๋ ์ปฌ๋ ์ ์ด๋ค. ์ด ์ปฌ๋ ์ ์ ๊ฐ์ ๋ํ ๊ณ ์ ํ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ์ ์ฅํ๊ณ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
2. Map์ ํน์ง
1) ๊ณ ์ ํ key๊ฐ
`Map`์ key-value ์์ ์ ์ฅํ๋๋ฐ, ๊ฐ key๋ ์ค๋ณต๋ ์ ์์ผ๋ฉฐ uniqueํ ๊ณ ์ ๊ฐ์ด์ด์ผ ํ๋ค. key๊ฐ ์ค๋ณต๋ ๊ฒฝ์ฐ, ๊ฐ์ฅ ๋ง์ง๋ง value๊ฐ ์ ์ฅ๋๋ค.
2) key-value ์์ผ๋ก ์ ์ฅ
๊ฐ ํญ๋ชฉ์ key-value์ ์์ผ๋ก ์ ์ฅํ์ฌ, key๊ฐ์ ์ฌ์ฉํ์ฌ ํด๋น key์ ์ฐ๊ด๋ value๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์ํ ์ ์๋ค.
3) ์์ ๋ณด์ฅ
`Map`์ ์์๋ฅผ ์ถ๊ฐํ ์์๋๋ก ์์๋ฅผ ๋ณด์ฅํ๋ค. ๋ฐ๋ผ์ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ ์์๋ฅผ ์ํํ๋ฉด ์ถ๊ฐํ ์์๋๋ก ์์์ ์ ๊ทผํ ์ ์๋ค.
3. Map์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
// 1) Map ์ ์ธ(๋น Map ์์ฑ)
const myMap: Map<string, number> = new Map<string, number>();
// 2) ๋ฐ์ด์ด ์ถ๊ฐ
myMap.set('apple', 1);
myMap.set('banana', 2);
myMap.set('orange', 3);
// 3) ๋ฐ์ดํฐ ์กฐํ - ํน์ ํค์ ๋ํ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ
const appleValue = myMap.get('apple'); // 1
// 4) ๋ฐ์ดํฐ ์กด์ฌ ํ์ธ - ํน์ ํค๊ฐ Map์ ์กด์ฌํ๋์ง ํ์ธ
const hasBanana = myMap.has('banana'); // true
// 5) Map ํฌ๊ธฐ ํ์ธ
const size = myMap.size; // 3
// 6) ๋ชจ๋ ํค์ ๊ฐ ์ํ
myMap.forEach((value, key) => {
console.log(key, value);
});
// ์ถ๋ ฅ:
// apple 1
// banana 2
// orange 3
// 7) ๋ฐ์ดํฐ ์ญ์ - ํน์ ํค ์ ๊ฑฐ
myMap.delete('orange');
1) Map์ ์ ์ธ
- new Map<key, value>()
2) ๋ฐ์ดํฐ ์ถ๊ฐ
- set(key, value)๋ฅผ ์ฌ์ฉํด key์ value๋ฅผ ์ ์ฅ
3) ๋ฐ์ดํฐ ์กฐํ
- get(key)๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ํค์ ๋ํ ๊ฐ์ ๊ฐ์ ธ์จ๋ค.
4) ๋ฐ์ดํฐ ์กด์ฌ ์ฌ๋ถ ํ์ธ
- has(key)๋ฅผ ์ฌ์ฉํ์ฌ ํน์ key๊ฐ Map์ ์กด์ฌํ๋์ง ํ์ธ
5) Map ํฌ๊ธฐ ํ์ธ
- size
6) ๋ชจ๋ key-value ๊ฐ ์ํ
- forEach((value, key))
7) ๋ฐ์ดํฐ ์ญ์
- delete(key)๋ฅผ ์ฌ์ฉํด์ key-value ๋ฐ์ดํฐ ์ญ์
Map์ ์ฌ์ฉํ๋ฉด key ๊ฐ์ ์ฌ์ฉํ์ฌ, ํด๋น ๊ฐ์ฒด ์ ๋ณด๋ฅผ value๋ก ๋งคํํ์ฌ ๊ด๋ฆฌํ ์ ์๋ค. ์ด๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋น ๋ฅด๊ฒ ์กฐํํ ์ ์๋ค.
'๐ป Programming > JS, TS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ์ด๋ฒคํธ ๊ฐ์ฒด (0) | 2024.01.13 |
---|---|
[JavaScript] window&document ์ ์ญ๊ฐ์ฒด์ DOM (0) | 2024.01.11 |
[JavaScript] slice vs splice vs split ์ฐจ์ด์ (0) | 2023.08.08 |
[JavaScript] ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํฌ๋ฆฌ์ค๋ง์ค๊น์ง ๋จ์ ์๊ฐ ๊ณ์ฐํ๊ธฐ (0) | 2023.06.21 |
[JavaScript] var, let, const (0) | 2023.06.20 |