09. Set

์–‘ํฌ์ค€ยท2021๋…„ 12์›” 19์ผ
0

JavaScript Info

๋ชฉ๋ก ๋ณด๊ธฐ
9/19
post-thumbnail

๐Ÿ“Œ 9-1 Set์ด๋ž€?

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋‚ด์žฅ ๋ฉ”์„œ๋“œ๋กœ ์ž๋ฃŒํ˜•์— ์ƒ๊ด€์—†์ด ๋ชจ๋“  ๊ฐ’์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ก Set ๊ฐ์ฒด์˜ ์ธ์ž๋“ค์€ ์ค‘๋ณต๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.
๐Ÿ’ก new Set()์œผ๋กœ ๋นˆ Set๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
๐Ÿ’ก Setํ•จ์ˆ˜ ์ธ์ž๋กœ ๋ฐฐ์—ด์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Œ 9-2 Set์˜ ์ค‘๋ณต์ œ๊ฑฐ

Set๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐฐ์—ด ์ค‘๋ณต ์ œ๊ฑฐํ•ด๋ณด๊ธฐ.

const arr = [1,2,3,3,3,4,4,4,5,5];
const mySet = new Set(arr); // Set๋ฉ”์„œ๋“œ ์•ˆ์— ์ธ์ž๋กœ ๋ฐฐ์—ด๋งŒ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
console.log(mySet); // Set(5) { 1, 2, 3, 4, 5 } ์ถœ๋ ฅ

์ด์™€ ๊ฐ™์ด ์ค‘๋ณต์ด ์ œ๊ฑฐ๋˜์–ด Set๊ฐ์ฒด์— ๋‹ด๊ธฐ๊ฒŒ ๋œ๋‹ค. Set๊ฐ์ฒด์— ๋‹ด๊ธด ์ธ์ž๋“ค์„ ๋‹ค์‹œ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•ด๋ณด์ž.

const arr = [1,2,3,3,3,4,4,4,5,5];
const mySet = new Set(arr);
const newArr = [...mySet]; // ์Šคํ”„๋ ˆ์ด๋“œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Set๊ฐ์ฒด ์•ˆ์— ์žˆ๋Š” ์ธ์ž๋“ค์„ ๋ณต์‚ฌํ•œ๋‹ค.
console.log(newArr); // [ 1, 2, 3, 4, 5 ] ์ถœ๋ ฅ

๐Ÿ“Œ 9-3 Set์˜ ๋ฉ”์„œ๋“œ

  1. Set.prototype.add() => Set ๊ฐ์ฒด์— ์ธ์ž๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  2. Set.prototype.has() => Set ๊ฐ์ฒด ์•ˆ์— has(์ธ์ž)๊ฐ€ ์žˆ์œผ๋ฉด true ์—†์œผ๋ฉด fasle๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  3. Set.prototype.delete() => Set ๊ฐ์ฒด์— ์ธ์ž๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
  4. Set.prototype.clear() => Set ๊ฐ์ฒด๋ฅผ ๋นˆ Set ๊ฐ์ฒด๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  5. Set.size => ๋ฉ”์„œ๋“œ๋Š” ์•„๋‹ˆ๊ณ  ํ”„๋กœํผํ‹ฐ์ง€๋งŒ ์ฃผ๋กœ Set์•ˆ์— ์ธ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ํ™•์ธํ•œ๋‹ค.
const mySet = new Set(); // Set๊ฐ์ฒด ์ƒ์„ฑ
console.log(mySet.add(3)); // Set(1) { 3 } ์ถœ๋ ฅ
console.log(mySet.add(3)); // Set(1) { 3 } ์ถœ๋ ฅ ์ค‘๋ณต์ด๋ฏ€๋กœ Set์— ์ธ์ž๊ฐ€ ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š”๋‹ค.
console.log(mySet.add(1)); // Set(2) { 3, 1 } ์ถœ๋ ฅ
console.log(mySet.add(2)); // Set(3) { 3, 1, 2 } ์ถœ๋ ฅ
console.log(mySet.has(1)); // true ์ถœ๋ ฅ
mySet.delete(3);
console.log(mySet);
console.log(mySet.size) // 2 ์ถœ๋ ฅ ํ”„๋กœํผํ‹ฐ์ด๋ฏ€๋กœ ์ ˆ๋Œ€ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค. Set.size() X
mySet.clear(); 
console.log(mySet); // // Set(0) {} ์ถœ๋ ฅ
profile
JS ์ฝ”๋ฆฐ์ด

0๊ฐœ์˜ ๋Œ“๊ธ€