Map ๊ฐ์ฒด
๐ก Map ๊ฐ์ฒด๋ key-value ํํ๋ก ๊ฐ์ ์ ์ฅํด์ค๋๋ค. ๊ทธ๋์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํด์ฌ ์๊ณ ๋ฆฌ์ฆ์ ํ๋ ์ ์ฉํ๊ฒ ์ฐ์ด๋ ๋ด์ฅ ํจ์ ์ ๋๋ค.
๋ฉ์๋
- set(key, value): Map์ ๊ฐ์ ์ค์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
- get(key): key์ ํด๋นํ๋ value ๊ฐ์ ๋ฐํํ ๋ ์ฌ์ฉํฉ๋๋ค.
- has(key): Map์ key๊ฐ ์กด์ฌํ๋์ง์ ์ ๋ฌด๋ฅผ ํ์ธํ ๋ ์ฌ์ฉํฉ๋๋ค.
- size(): Map์ ํฌ๊ธฐ๋ฅผ ๊ตฌํ ๋ ์ฌ์ฉํฉ๋๋ค.
- ํ๋ฒํ ๊ฐ์ฒด๋ฅผ Map์ผ๋ก ๋ง๋ค๊ณ ์ถ์๋๋?
- Map์ ๊ฐ์ฒด๋ก ๋ณํํ๊ณ ์ถ์ ๋๋?
Object.entries(obj)
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๋ฅผ ์ฌ์ฉํ ๋๋ณด๋ค ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ ๋๋ค.