map-set
Map
key์ value๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ
๊ฐ์ฒด์๋ ๋ค๋ฅด๊ฒ key์ ๋ค์ํ ์๋ฃํ์ ํ์ฉํ๋ค
map์ value์ ์ ๊ทผํ ๋ ๋๊ดํธ[]
๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ ์ด๋ ๊ฐ์ฒด์ ๊ฐ์ ์ทจ๊ธ์ ํ๊ธฐ์ get
,set
์ ์ด์ฉ
key๋ก ๊ฐ์ฒด๋ ํ์ฉํ๋ค.
๋งต์ key๋ฅผ ๋น๊ตํ ๋ ===
์ด ์๋ SameValueZero
๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฑ๊ฐ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ๋๋ฌธ์ NaN
๋ key๋ก ์ฌ์ฉ๊ฐ๋ฅํ๋ค
๋งต์ key๋ก ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ณ ๊ฐ์ฒด๋ฅผ ์ญ์ ์์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ์ง ์๋๋ค. (์ฌ์ ํ ๋งต์ด ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๊ณ ์๊ธฐ ๋๋ฌธ์)
์ฃผ์ ๋ฉ์๋์ ํ๋กํผํฐ
new Map() : ๋งต ์์ฑ
map.set(key,value) : key๋ฅผ ์ด์ฉํด value ์ ์ฅ
map.get(key) : key์ value ๋ฐํ. key๊ฐ ์์ผ๋ฉด undefined
map.has(key) : key๊ฐ ์กด์ฌํ๋ฉด true, ์์ผ๋ฉด false
map.delete(key) : key์ ํด๋นํ๋ value ์ญ์
map.clear() : ๋งต ๋ชจ๋ ์์ ์ง์ฐ๊ธฐ
map.size : ๋งต์ ์์ ๊ฐ์ ๋ฐํ
map.keys() : key๋ค์ ๋ชจ์ iterable๊ฐ์ฒด๋ฅผ ๋ฐํ
map.values() : value๋ค์ ๋ชจ์ iterable ๊ฐ์ฒด๋ฅผ ๋ฐํ
map.entries() : [key,value]๋ฅผ ์์ผ๋กํ๋ iterable๊ฐ์ฒด๋ฅผ ๋ฐํ
forEach() : ๋ชจ๋ ์์์ ๋ํด ๋ฐ๋ณต์คํ
Object.entries : ๊ฐ์ฒด๋ฅผ ๋งต์ผ๋ก ๋ฐ๊พธ๊ธฐ
Object.fromEntries : ๋งต์ ๊ฐ์ฒด๋ก ๋ฐ๊พธ๊ธฐ
WeekMap
์ํฌ๋งต์ ์ผ๋ฐ ๋งต๊ณผ ๋ฌ๋ฆฌ ํค๋ก์ฐ์ธ ๊ฐ์ฒด๊ฐ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ๋์์ด ๋๋ค.
key๊ฐ ๋ฐ๋์ ๊ฐ์ฒด์ด์ด์ผ ํ๋ค.
์ฌ์ฉ๊ฐ๋ฅ ํจ์
weakMap.get(key)
weakMap.set(key, value)
weakMap.delete(key)
weakMap.has(key)
์ฌ์ฉ ์
๋ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ณณ์ด ํ์ํ ๋
์ธ๋ถ ์ฝ๋์ ์ํ ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์์ ์ ํ ๋, ์ด๋ค ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํด์ค๋ (๊ตณ์ด ์ธ๋ถ ์ฝ๋์ ์ํ ๊ฐ์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋จ๊ธธ ํ์๊ฐ ์๋ค.)
์บ์ฑ์ด ํ์ํ ๋
๋์ผํ ํจ์๋ฅผ ์ฌ๋ฌ๋ฒ ํธ์ถํ ๋ (์ฒ์ ์คํ๊ฐ์ ์ฌ๋ฌ๋ฒ ์ฌ์ฉํ ๋) ์บ์ฑ์ ์ด์ฉํ๋ฉฐ ์บ์์ ํ์์์ด์ง ํจ์๋ฅผ ์ญ์ ํ ๋ WeekMap์ด ์ ์ฉํ๋ค.
Set
์ค๋ณต์ ํ์ฉํ์ง ์๋ ๊ฐ๋ค์ ๋ชจ์๋์ ์๋ฃ๊ตฌ์กฐ
์ฃผ์ ๋ฉ์๋ ๋ฐ ํ๋กํผํฐ
new Set(iterable) : iterable๊ฐ์ฒด(๋ฐฐ์ด, ๊ฐ์ฒด)์ ์ ๋ฌ๋ฐ์ผ๋ฉด ๊ฐ์ ๋ณต์ฌํด ์ ์ ๋ง๋ค์ด์ค๋ค.
set.add(value) : value๋ฅผ ์ถ๊ฐํ๊ณ ์ ์์ ์ ๋ฐํ
set.delete(value) : value๋ฅผ ์ ๊ฑฐํ๊ณ ์ ๊ฑฐ๊ฐ ์ฑ๊ณตํ๋ฉด true, ์๋๋ฉด false ๋ฐํ
set.has(value) : ์ ๋ด์ ๊ฐ์ด ์กด์ฌํ๋ฉด true, ์๋๋ฉด false
set.clear() : ์ ์ด๊ธฐํ
set.size : ์ ์ ์์ ๊ฐ์
for...of / forEach : ๋ฐ๋ณต์์ ์ํ
map๊ณผ set์ ์ํธ ๋ณํ์ ์ฝ๊ฒํ๊ธฐ ์ํด forEach์ ์ฐ์ธ ์ธ์๋ฅผ 2๊ฐ ์ฌ์ฉํ๋ค.
WeekSet
์ํฌ๋งต์ฒ๋ผ ๋ณต์กํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์๊ณ ์
, ์๋์ค
์ฒ๋ผ ๊ฐ๋จํ ๋ต๋ณ์ ์ป๋ ์ฉ๋๋ก ์ฌ์ฉ
์ฌ์ฉ๊ฐ๋ฅ ํจ์
weakSet.get(key)
weakSet.set(key, value)
weakSet.delete(key)
weakSet.has(key)
์ฌ์ฉ ์
๋ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ณณ์ด ํ์ํ ๋
์ธ๋ถ ์ฝ๋์ ์ํ ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์์ ์ ํ ๋, ์ด๋ค ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํด์ค๋ (๊ตณ์ด ์ธ๋ถ ์ฝ๋์ ์ํ ๊ฐ์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋จ๊ธธ ํ์๊ฐ ์๋ค.)
์บ์ฑ์ด ํ์ํ ๋
๋์ผํ ํจ์๋ฅผ ์ฌ๋ฌ๋ฒ ํธ์ถํ ๋ (์ฒ์ ์คํ๊ฐ์ ์ฌ๋ฌ๋ฒ ์ฌ์ฉํ ๋) ์บ์ฑ์ ์ด์ฉํ๋ฉฐ ์บ์์ ํ์์์ด์ง ํจ์๋ฅผ ์ญ์ ํ ๋ WeekMap์ด ์ ์ฉํ๋ค.
Last updated