[ JavaScript ๋ฌธ๋ฒ• ์ข…ํ•ฉ๋ฐ˜ 2์ฃผ์ฐจ (6)] SET ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

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)

1) ํฌ๊ธฐ (๊ธธ์ด) ํ™•์ธ์‹œ 2๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

2) ํฌ๊ธฐ (๊ธธ์ด) ํ™•์ธ ์‹œ 'value2'๊ฐ€ ์ค‘๋ณต๋จ์œผ๋กœ ๋™์ผํ•œ ๊ฐ’์€ ์ค‘๋ณต์œผ๋กœ ์ธ์‹ํ•จ์œผ๋กœ '2' ์ถœ๋ ฅ๋˜์–ด ๋‚˜ํƒ€๋‚œ๋‹ค.