2023. 8. 1. 19:37ใ2. JS๋ฌธ๋ฒ ์ข ํฉ
- Set
Set์ ๊ณ ์ ํ ๊ฐ์ ์ ์ฅํ๋ ์๋ฃ ๊ตฌ์กฐ๋ก Set์ ๊ฐ๋ง ์ ์ฅํ๋ฉฐ, ํค๋ฅผ ์ ์ฅํ์ง ์๋๋ค. Set์ ๊ฐ์ด ์ค๋ณต๋์ง ์๋ ์ ์ผํ ์์๋ก๋ง ๊ตฌ์ฑ๋๋ค. - Map๊ณผ Set์ ๋ ๊ฐ์ง ๋ค๋ฅธ ์ ํ์ ์๋ฃ ๊ตฌ์กฐ๋ก ๋ณผ ์ ์๋ค. Map์ ํค-๊ฐ ์์ ์ ์ฅํ๋ ๊ฐ์ฒด์ ๋น์ทํ๋ฉฐ, Set์ ๊ณ ์ ํ ๊ฐ์ ์ ์ฅํ๋ ์๋ฃ๋ก ๊ตฌ์กฐ. Map ๋ฐ Set์ ๋ชจ๋ ๊ฐ ์ถ๊ฐ, ๊ฒ์, ์ญ์ ๋ฐ ๋ชจ๋ ๊ฐ ์ ๊ฑฐ๋ฅผ ์ํํ ์ ์๋ค. Map ๋ฐ Set์ ์ฌ์ฉํ์ฌ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์ฑ ๋ฐ ๊ฒ์์ ์ํํ ์ ์๋ค.
| Map | Set |
| ํค-๊ฐ ์์ ์ ์ฅํ๋ ๊ฐ์ฒด์ ๋น์ท |
๊ณ ์ ํ ๊ฐ์ ์ ์ฅํ๋ ์๋ฃ๋ฃ ๊ตฌ์กฐ |
| ๊ฐ ์ถ๊ฐ, ๊ฒ์, ์ญ์ ๋ฐ ๋ชจ๋ ๊ฐ ์ ๊ฑฐ๋ฅผ ์ํ ํ ์ ์๋ค. | |
| ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์ฑ ๋ฐ ๊ฒ์์ ์ํํ ์ ์๋ค. | |
( * Map ์ฌ์ฉ๋ฐฉ๋ฒ : 2023.08.01 - [2. JS๋ฌธ๋ฒ ์ข ํฉ] - [ JavaScript ๋ฌธ๋ฒ ์ข ํฉ๋ฐ 2์ฃผ์ฐจ (5)] MAP ์ฌ์ฉ ๋ฐฉ๋ฒ )

[ Set์ ์ฌ์ฉ ํด์ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํํ ์ ์๋ค. ]
๊ฐ ์ถ๊ฐ ๋ฐ ๊ฒ์
๊ฐ ์ญ์
๋ชจ๋ ๊ฐ ์ ๊ฑฐ
Set ํฌ๊ธฐ ๋ฐ ์กด์ฌ ์ฌ๋ถ ํ์ธ
- Set ์์ฑ ๋ฐ ์ฌ์ฉ
์๋ก์ด Set์ ๋ง๋ค๋ ค๋ฉด Set() ์์ฑ์๋ฅผ ์ฌ์ฉํ๋ค.
const mySet = new Set();
Set์ ๊ฐ์ ์ถ๊ฐํ๋ ค๋ฉด add() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
mySet.add('value1');
mySet.add('value2');
Set์์ ๊ฐ์ ๊ฒ์ํ๋ ค๋ฉด has() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
console.log(mySet.has('value1')); // true ์ถ๋ ฅ
- Set์ ๋ฐ๋ณต
Set์์๋ values() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋ฐ๋ณตํ ์ ์๋ค.
const mySet = new Set();
mySet.add('value1');
mySet.add('value2');
mySet.add('value3');
for (const value of mySet.values()) {
console.log(value);
}
- Set์ ํฌ๊ธฐ ๋ฐ ์กด์ฌ ์ฌ๋ถ ํ์ธ
Set์ ํฌ๊ธฐ๋ฅผ ํ์ธํ๋ ค๋ฉด size ์์ฑ์ ์ฌ์ฉํฉ๋๋ค.
console.log(mySet.size); // 3 ์ถ๋ ฅ
ํน์ ๊ฐ์ Set์์ ๊ฒ์ํ์ฌ ์กด์ฌํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ค๋ฉด has() ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
console.log(mySet.has('value2')); // true ์ถ๋ ฅ


1) ํฌ๊ธฐ (๊ธธ์ด) ํ์ธ์ 2๋ก ์ถ๋ ฅ๋๋ค.
2) ํฌ๊ธฐ (๊ธธ์ด) ํ์ธ ์ 'value2'๊ฐ ์ค๋ณต๋จ์ผ๋ก ๋์ผํ ๊ฐ์ ์ค๋ณต์ผ๋ก ์ธ์ํจ์ผ๋ก '2' ์ถ๋ ฅ๋์ด ๋ํ๋๋ค.
