๋”ฐํŒŒ๐Ÿ•
Hwaiian Pizza IT Pub
๋”ฐํŒŒ๐Ÿ•
  • ALL (62)
    • Front-End (13)
      • HTML & CSS (2)
      • JavaScript (7)
      • React (2)
      • TypeScript (0)
      • Jquery (0)
      • Git (1)
      • Editor (0)
    • Algorithms (44)
      • Baekjoon (28)
      • Programmers (13)
      • Algorithms (3)
    • Computer Science (0)
      • Math (0)
    • Conference (1)
    • Life (3)
      • Book (0)
hELLO ยท Designed By ์ •์ƒ์šฐ.
๋”ฐํŒŒ๐Ÿ•

Hwaiian Pizza IT Pub

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒํ˜• Set ๊ฐœ๋…์ •๋ฆฌ
Front-End/JavaScript

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒํ˜• Set ๊ฐœ๋…์ •๋ฆฌ

2022. 6. 7. 18:54
๋ฐ˜์‘ํ˜•

 

 

์ด ํฌ์ŠคํŒ…์€ ์ด ๋ฌธ์ œ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘๋˜์—ˆ๋‹ค.

 

[JS] ๋ฐฑ์ค€ 10815๋ฒˆ : ์ˆซ์ž ์นด๋“œ

Question ๋ฐฑ์ค€ 10815๋ฒˆ : ์ˆซ์ž ์นด๋“œ ์ˆซ์ž ์นด๋“œ๋Š” ์ •์ˆ˜ ํ•˜๋‚˜๊ฐ€ ์ ํ˜€์ ธ ์žˆ๋Š” ์นด๋“œ์ด๋‹ค. ์ƒ๊ทผ์ด๋Š” ์ˆซ์ž ์นด๋“œ N๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ •์ˆ˜ M๊ฐœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ์ˆ˜๊ฐ€ ์ ํ˜€์žˆ๋Š” ์ˆซ์ž ์นด๋“œ๋ฅผ ์ƒ๊ทผ์ด๊ฐ€ ๊ฐ€์ง€๊ณ 

hawaiian-pizza-it.tistory.com

์ž๋ฃŒํ˜• Set์„ ์ด์šฉํ•ด์„œ ํ’€์–ด์•ผ ํ–ˆ๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ

Set๋‹ˆ๊ฐ€๋ญ”๋ฐ ๋ชฐ๋ผ์„œ ํ‹€๋ฆฌ๊ฒŒ ๋งŒ๋“œ๋ƒ ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์ง€๊ธˆ๋ถ€ํ„ฐ ์•Œ์•„๋ณด์ž

 

 

 

 

 

1. Set ๊ฐœ๋…


 

  • Set์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐ’์„ ๋ชจ์•„๋†“์€ ํŠน๋ณ„ํ•œ ์ปฌ๋ ‰์…˜
  • Key๊ฐ€ ์—†๋Š” ๊ฐ’์ด ์ €์žฅ

 

 

 

 

 

2. ์ฃผ์š” ๋ฉ”์„œ๋“œ(Method)


 

 

2-1. ์ฃผ์š” ๋ฉ”์„œ๋“œ

  • new Set(iterable) : Set์„ ์ƒ์„ฑ. ์ด ํŠธ๋Ÿฌ๋ธ” ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌ๋ฐ›์œผ๋ฉด(๋Œ€๊ฐœ ๋ฐฐ์—ด) ๊ทธ ์•ˆ์˜ ๊ฐ’์„ ๋ณต์‚ฌํ•ด set์— ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.
  • set.add(value) : ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์…‹ ์ž์‹ ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • set.delete(value) : ๊ฐ’์„ ์ œ๊ฑฐ. ํ˜ธ์ถœ ์‹œ์ ์— ์…‹ ๋‚ด์— ๊ฐ’์ด ์žˆ์–ด์„œ ์ œ๊ฑฐ์— ์„ฑ๊ณตํ•˜๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • set.has(value) : ์…‹ ๋‚ด์— ๊ฐ’์ด ์กด์žฌํ•˜๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜
  • set.clear() : ์…‹์„ ๋น„์›€
  • set.size : ์…‹ ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’์˜ ๊ฐœ์ˆ˜

 

 

 

2-2. ์ฃผ์š” ๋ฉ”์„œ๋“œ ์˜ˆ์‹œ

let fruits = ['watermelon', 'mango', 'apple'];
let set = new Set(fruits);

set.add('melon');
set.add('melon'); // ์ค‘๋ณต๊ฐ’์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๋ฒˆ๋” ์ถ”๊ฐ€๋ฅผ ํ•ด๋„ ์ถ”๊ฐ€๋˜๋Š”๊ฐ’์ด ์—†์Œ
console.log(set); // Set(4) { 'watermelon', 'mango', 'apple', 'melon' }

set.delete('mango');
console.log(set); // Set(3) { 'watermelon', 'apple', 'melon' }
console.log(set.has('mango')) // false
console.log(set.size); // 3

set.clear();
console.log(set); // Set(0) {}
console.log(set.size); // 0

 

 

 

 

์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ช…๋ก์„ ๋งŒ๋“ ๋‹ค๋ฉด...?!

let guestBook = new Set();

let jane = { name: 'jane', age: 12 };
let bob = { name: 'bob', age: 22 };
let jay = { name: 'jay', age: 33 };

guestBook.add(jane);
guestBook.add(jane);
guestBook.add(jay);
guestBook.add(bob);
guestBook.add(jay);

for (let visitor of guestBook) {
    console.log(visitor.name)
}

// jane jay bob ์ˆœ์œผ๋กœ ์ถœ๋ ฅ

console.log(guestBook.size); // 3

์•ž์— ์˜ˆ์‹œ์—์„œ ๋ณธ๊ฑฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์•„๋ฌด๋ฆฌ ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•ด๋„

์ค‘๋ณต๋˜๋Š” ๊ฐ’์—†์ด 3๋ช…์˜ ๋ฐฉ๋ฌธ๊ฐ์ด ์ฝ˜์†” ์ฐฝ์— ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

๋ฐฐ์—ด ์•ˆ์—์„œ ์ค‘๋ณต ๊ฐ’์„ ์ œ๊ฑฐ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์œผ๋‚˜ find๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ค‘๋ณต๊ฐ’์„ ์ฐพ์•„์„œ ์–ด์ฉŒ๊ณ ..

ํ•˜์ง€๋งŒ! ์ฒ˜์Œ๋ถ€ํ„ฐ ์ค‘๋ณต๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” Set์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ํ•ฉ๋ฆฌ์ ์ด๋‹ค.

 

 

 

 

 

 

 

Reference(์ฐธ์กฐ)

 

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Set

https://ko.javascript.info/map-set

 

 

 

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Front-End > JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜ ์„ ์–ธ var/let/const (var๋ฅผ ์‚ฌ์šฉํ•ด์„  ์•ˆ๋˜๋Š”์ด์œ )  (1) 2022.09.21
[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒํ˜• Map ๊ฐœ๋…์ •๋ฆฌ  (0) 2022.06.13
[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ๋ฐฐ์—ด(Array)์˜ ๊ฐœ๋…๊ณผ ์˜ˆ์‹œ (feat.๋“œ๋ฆผ์ฝ”๋”ฉ)  (0) 2022.05.31
[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•œ ๋ฐฐ์—ด Array ๋ฉ”์†Œ๋“œ ์ •๋ฆฌ (feat.๋“œ๋ฆผ์ฝ”๋”ฉ)  (0) 2022.05.26
[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•œ Math ๋ฉ”์†Œ๋“œ ์ •๋ฆฌ, ๋กœ๋˜๋ฒˆํ˜ธ ์ถ”์ถœ๊ธฐ  (0) 2022.05.23
    'Front-End/JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜ ์„ ์–ธ var/let/const (var๋ฅผ ์‚ฌ์šฉํ•ด์„  ์•ˆ๋˜๋Š”์ด์œ )
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒํ˜• Map ๊ฐœ๋…์ •๋ฆฌ
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ๋ฐฐ์—ด(Array)์˜ ๊ฐœ๋…๊ณผ ์˜ˆ์‹œ (feat.๋“œ๋ฆผ์ฝ”๋”ฉ)
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•œ ๋ฐฐ์—ด Array ๋ฉ”์†Œ๋“œ ์ •๋ฆฌ (feat.๋“œ๋ฆผ์ฝ”๋”ฉ)
    ๋”ฐํŒŒ๐Ÿ•
    ๋”ฐํŒŒ๐Ÿ•
    ์ €์ชฝ ์†๋‹˜์ด ๋ณด๋‚ด์‹  ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค. ๋””๋ฒ„๊น… ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?๐Ÿน

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”