Jiwon() 2023. 7. 27. 15:12

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๋กœ ๋งคํ•‘ํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.