(JavaScript) Map, Set ์ดํ•ดํ•˜๊ธฐ

mangomiยท2022๋…„ 12์›” 14์ผ
0

JavaScript

๋ชฉ๋ก ๋ณด๊ธฐ
4/5

๐Ÿ’ป Map

  • ์ž๋ฃŒ์˜ ์—ฐ๊ด€์„ฑ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • Key์™€ Value๋กœ ์ด๋ฃจ์–ด์ง„ ์ปฌ๋ ‰์…˜, Map๊ฐ์ฒด๋Š” ๊ฐ์ฒด์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ์ฐจ์ด๊ฐ€ ์žˆ์Œ
  • Map ์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•œ ์ดํ„ฐ๋Ÿฌ๋ธ”์— ์ค‘๋ณต๋œ ํ‚ค๋ฅผ ๊ฐ–๋Š” ์š”์†Œ๊ฐ€ ์กด์žฌํ•˜๋ฉด ๊ฐ’์ด ๋ฎ์–ด์จ์ง Map๊ฐ์ฒด์—๋Š” ์ค‘๋ณต๋œ ํ‚ค๋ฅผ ๊ฐ–๋Š” ์š”์†Œ๊ฐ€ ์กด์žฌ ํ•  ์ˆ˜ ์—†๋‹ค.
var person = new Map();
person.set("name", "kim");
person.set("age", 20);

๐Ÿ’ก object ์ž๋ฃŒํ˜•์€ ์ž๋ฃŒ ์ด๋ฆ„์œผ๋กœ ๊ธ€์ž๋งŒ ๊ฐ€๋Šฅ, Map ์ž๋ฃŒํ˜•์€ ๋‹ค ๊ฐ€๋Šฅ
person.set(100, "kk"); -> 100์ด ์ž๋ฃŒ์˜ key๊ฐ’์ด ๋œ๋‹ค.

โœ” Map์—์„œ ์ž๋ฃŒ ๊บผ๋‚ด๋Š” ๋ฒ•

person.get("age"); //20

โœ” Map์—์„œ ์ž๋ฃŒ ์‚ญ์ œํ•˜๋Š” ๋ฒ•

person.delete("age"); 

โœ” Map์—์„œ ์ž๋ฃŒ ์ผ๊ด„ ์‚ญ์ œํ•˜๋Š” ๋ฒ•

person.clear(); 

โœ” Map์—์„œ ์ž๋ฃŒ ๊ฐฏ์ˆ˜ ์„ธ๋Š” ๋ฒ•

person.size; 

โœ” ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ Map์—์„œ ์ž๋ฃŒ ๊บผ๋‚ด๋Š” ๋ฒ•

for (var key of person.keys()) {
	console.log(key);
}

โœ” Map ์ž๋ฃŒํ˜•์— ์ง์ ‘ ์ž๋ฃŒ ์ง‘์–ด๋„ฃ์„ ๋•Œ

var person = new Map([
	["name", "kim"],
	["age", 20],
]);
// Map(2) {'name' => 'kim', 'age' => 20}

๐Ÿ’ป Set

  • ์ค‘๋ณต์ž๋ฃŒ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
var ์ถœ์„๋ถ€ = ["john", "tom", "andy", "tom"];

var ์ถœ์„๋ถ€2 = new Set(["john", "tom", "andy", "tom"]);
// Set(3) {'john', 'tom', 'andy'}[[Entries]]0: "john"1: "tom"2: "andy"size: 3[[Prototype]]: Set

โœ” Set์ž๋ฃŒํ˜•์— ์ž๋ฃŒ์ถ”๊ฐ€ํ•˜๊ธฐ

์ถœ์„๋ถ€2.add('sally');

โœ” Set์ž๋ฃŒํ˜•์— ์‚ญ์ œํ•˜๊ธฐ

์ถœ์„๋ถ€2.delete('sally');

โœ” Set์ž๋ฃŒํ˜•์„ ์ผ๊ด„ ์‚ญ์ œํ•˜๊ธฐ

์ถœ์„๋ถ€2.clear();

โœ” Set์ž๋ฃŒํ˜•์— ์žˆ๋Š”์ง€ ํ™•์ธ

์ถœ์„๋ถ€2.has('sally'); //true, false

โœ” Set์ž๋ฃŒํ˜• ๋ช‡๊ฐœ ๋“ค์–ด์žˆ๋Š”์ง€ ํ™•์ธ

์ถœ์„๋ถ€2.size //์ค‘๋ณต ๊ฐ’ ์ œ๊ฑฐํ•œ ๊ฐฏ์ˆ˜

๐Ÿ’ป set์ž๋ฃŒํ˜• <-> Array ์ž๋ฃŒํ˜•

Q : Array์˜ ์ค‘๋ณต์ž๋ฃŒ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์œผ๋ฉด?

var ์ถœ์„๋ถ€ = ["john", "tom", "andy", "tom"];
var ์ถœ์„๋ถ€2 = new Set(["john", "tom", "andy", "tom"]);
์ถœ์„๋ถ€ = [...์ถœ์„๋ถ€2]; //๊ด„ํ˜ธ ์ œ๊ฑฐ
// ['john', 'tom', 'andy', 'tom']

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