๐Ÿ’ก Map ๊ฐ์ฒด๋Š” key-value ํ˜•ํƒœ๋กœ ๊ฐ’์„ ์ €์žฅํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ•ด์‰ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ด๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜ ์ž…๋‹ˆ๋‹ค.


๋ฉ”์„œ๋“œ

  • set(key, value): Map์— ๊ฐ’์„ ์„ค์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • get(key): key์— ํ•ด๋‹นํ•˜๋Š” value ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • has(key): Map์— key๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€์˜ ์œ ๋ฌด๋ฅผ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • size(): Map์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ํ‰๋ฒ”ํ•œ ๊ฐ์ฒด๋ฅผ Map์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์„๋•Œ๋Š”?
  • Object.entries(obj)
  • Map์„ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š”?
  • Object.fromEntries(map)


Map vs Object

Key์˜ type

  • Map: ์–ด๋–ค ๊ฐ’์ด๋“  type์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Object: String, Symbol

์ˆœํšŒํ•  ๋•Œ

  • Map: Bulit-in interable(๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด). ๋ฐ”๋กœ ์ˆœํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • Object: key์˜ ๋ฐฐ์—ด์„ ์–ป์–ด ํ•ด๋‹น ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ์ˆœํšŒํ•ฉ๋‹ˆ๋‹ค.(obj[key])


ํฌ๊ธฐ

  • Map: size ์†์„ฑ์„ ์ด์šฉํ•ด์„œ ์†์‰ฝ๊ฒŒ ํฌ๊ธฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Object: ์ง์ ‘ ํŒ๋ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Object.key(obj).length


์ •๋ ฌ

  • Map: ์‚ฝ์ž…ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ์ด ๋ฉ๋‹ˆ๋‹ค.
  • Object: ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Object๋Š” prototype์„ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ž˜๋ชปํ•˜๋ฉด key์˜ ์ถฉ๋Œ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๊ทธ๋Ÿผ ๊ฐ๊ฐ ์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ์š”?

Object

  • Object๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.
  • Key๊ฐ€ String์ด๊ฑฐ๋‚˜ integer(๋˜๋Š” Symbol)์ธ ๊ฒฝ์šฐ, Map์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๊ธฐ๋ณธ Object๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํ›จ์”ฌ ์ ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.
  • JSONโ†’Object ๋˜๋Š” Objectโ†’JSON์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Map

  • Key์˜ ์ถ”๊ฐ€/์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • Map์€ ์ˆœ์ˆ˜ํ•œ Hash์ด๊ณ , Object๋Š” ๊ทธ๋ณด๋‹ค ๋ณต์žกํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ Map์ด ๋” ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.
  • Key์˜ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์–ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Map์€ Iteration ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. (Array๊ฐ€ ์•„๋‹ˆ์–ด๋„ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋Š” ๋ฐ”๋กœ ์ด Interation ์†์„ฑ ๋•Œ๋ฌธ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค!)
  • ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ํด ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด Object๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋ณด๋‹ค ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค.