
โ ์๋ฐ์คํฌ๋ฆฝํธ์์
๊ฐ์ฒด/๋ฐฐ์ด์ ์ด์ฉํ์ฌ ์ฌ๋ฌ ๋ณต์กํ ํ๋ก๊ทธ๋๋ฐ์ ํ ์ ์์ง๋ง ๊ทธ๋ผ์๋ ๋ถ์กฑํ ๋ถ๋ถ๋ค์ด ์์ดMap๊ณผSet์ด๋ผ๋ ์๋ฃ๊ตฌ์กฐ๊ฐ ๋ง๋ค์ด์ก๋ค.
Map์ key-value๋ฅผ ์ ์ฅํ๋ ๊ฐ์ฒด์ ๋น์ทํ๋ค. Map์ ๊ฐ ์์ key์ value์ ์ ์ฅํ๋ฉฐ, ๊ฐ์ฒด์ ๋ฌ๋ฆฌ key๋ก ์ฌ์ฉ ํ ์ ์๋ ๋ชจ๋ ์ ํ์ ์ฌ์ฉํ ์ ์๋ค. Map์ key๊ฐ ์ ๋ ฌ๋ ์์๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์, ์ถ๊ฐํ ์์๋๋ก ๋ฐ๋ณตํ์ง ์๋๋ค.
๐์ฃผ์ ๋ฉ์๋
new Map()ย โ Map ์์ฑ
map.set(key, value)ย โย key๋ฅผ ์ด์ฉํดย value๋ฅผ ์ ์ฅํฉ๋๋ค.
map.get(key)ย โย key์ ํด๋นํ๋ ๊ฐ์ ๋ฐํํฉ๋๋ค.ย key๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉดยundefined๋ฅผ ๋ฐํํฉ๋๋ค.
map.has(key)ย โย key๊ฐ ์กด์ฌํ๋ฉดยtrue, ์กด์ฌํ์ง ์์ผ๋ฉดยfalse๋ฅผ ๋ฐํํฉ๋๋ค.
map.delete(key)ย โย key์ ํด๋นํ๋ ๊ฐ์ ์ญ์ ํฉ๋๋ค.
map.clear()ย โ ๋งต ์์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
map.sizeย โ ์์์ ๊ฐ์๋ฅผ ๋ฐํํฉ๋๋ค.
// ์๋ก์ด Map์ ๋ง๋ค๊ธฐ ์ํด Map() ์์ฑ์๋ฅผ ์ฌ์ฉํ๋ค.
const myMap = new Map();
// Map์ ๊ฐ์ ์ถ๊ฐํ๊ธฐ ์ํด set() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
myMap.set('key', 'value');
// Map์์ ๊ฐ์ ๊ฒ์ํ๊ธฐ ์ํด get()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
console.log(myMap.get('key')); // 'value' ์ถ๋ ฅ
Map์์ keys(), values(), entries()๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ key, value ๋ฐ key-value๋ฅผ ๋ฐ๋ณตํ ์์๋ค.
entries()๋ {['key',vlaue],['key',value]}ํํ๋ก ์ถ๋ ฅ๋๋ค.
const myMap = new Map();
myMap.set('one', 1);
myMap.set('two', 2);
myMap.set('three', 3);
for (const key of myMap.keys()) {
console.log(key);
}
for (const value of myMap.values()) {
console.log(value);
}
for (const entry of myMap.entries()) {
console.log(`${entry[0]}: ${entry[1]}`);
// one: 1
// two: 2
// three: 3
}
Set์ ๊ณ ์ ํ ๊ฐ์ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ๋ค. Set์ ๊ฐ๋ง ์ ์ฅํ๋ฉฐ, ํค๋ฅผ ์ ์ฅํ์ง ์๋๋ค โก๏ธ ๊ฐ์ด ์ค๋ณต๋์ง์๋ ์ ์ผํ ์์๋ก๋ง ๊ตฌ์ฑ๋๋๊ฒ์ด Set์ด๋ค.
Set ํฌ๊ธฐ ๋ฐ ์กด์ฌ ์ฌ๋ถ ํ์ธ// Set() ์์ฑ์๋ฅผ ์ฌ์ฉํ์ฌ Set์ ์์ํ๋ค.
const mySet = new Set();
// Set์ ๊ฐ์ ์ถ๊ฐ ํ๊ธฐ์ํด add()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
mySet.add('value1');
mySet.add('value2');
// has()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด Set์์ ๊ฐ์ ๊ฒ์ํ ์ ์๋ค.
console.log(mySet.has('value1')); // true ์ถ๋ ฅ
Set์ Map๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค. Set์์ ๋ฐ๋ณต์ ํ๊ธฐ ์ํด์๋ values()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
const mySet = new Set();
mySet.add('value1');
mySet.add('value2');
mySet.add('value3');
for (const value of mySet.values()) {
console.log(value);
// value1
// value2
// value3
}
Set์ ํฌ๊ธฐ๋ฅผ ํ์ธํ๊ธฐ์ํด size()์์ฑ์ ์ฌ์ฉํ๋ฉฐ, ํน์ ๊ฐ์ Set์์ ๊ฒ์ํ์ฌ ์กด์ฌ์ ์ฌ๋ถ๋ฅผ ํ์ธํ ๋๋ has()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
console.log(mySet.size); // 3 ์ถ๋ ฅ
console.log(mySet.has('value2')); // true ์ถ๋ ฅ