[THU] 2021-12-02 TIL

MINBOKΒ·2021λ…„ 12μ›” 2일
0

λ©‹μŸμ΄μ‚¬μžμ²˜λŸΌ

λͺ©λ‘ 보기
11/19

ν‚₯볡싱 3μ£Όμ°¨ ν›„κΈ°: 살은 μ•ˆλΉ μ§€κ³  뢀상을 μ–»μ—ˆλ‹€. μ•„μ•Ό
λ²¨λ‘œκ·Έλ³΄λ‹€ λ…Έμ…˜μ΄ 훨씬 νŽΈν•˜κ³ , κ·€μ—½κ³  심지어 앱도 μžˆλ‹€.
λ…Έμ…˜μ„ 주둜 써야겠닀 λ£°λ£¨μ“°πŸ˜˜
μš”μ¦˜ μ†Œμ½”λ„λͺ¨ νšŒμ „λͺ©λ§ˆλž‘ λΉ„μ˜€ 리무진이 λ„ˆλ¬΄ μ’‹λ‹€.
특히 νšŒμ „λͺ©λ§ˆ ν•˜λ£¨μ— 3μ‹œκ°„μ”©μ€ λ“£λŠ”λ“―

🧑 Notion
https://www.notion.so/Map-Set-eb1cf35cdee845349d4ee178a7cca0d9

1. Map

1.1 Mapμ΄λž€?

: key와 value의 μŒμ„ κ°€μ§€λŠ” κ°μ²΄μžλ£Œν˜•,

  Map은 'Map'μ΄λΌλŠ” **μƒˆλ‘œμš΄ μžλ£Œν˜•**이라고 생각해라! (array 처럼 typeof ν•˜λ©΄ object 둜 λ‚˜μ˜΄)

✨objectλŠ” Interable ν•˜μ§€ μ•ŠμœΌλ©°,Β Map은Interable 함 (Interable: μˆœνšŒκ°€ κ°€λŠ₯함)

1.2 Map의 이용

let m = new Map();

m.set('ν•˜λ‚˜', 'one');
m.set('λ‘˜', 'two');
m.set('μ…‹', 'three');   //set: Map에 값을 λ„£μŒ
m.get('ν•˜λ‚˜'); //'one'
m.get('λ‘˜'); //'two'   //get: Map의 값에 μ ‘κ·Ό
m.keys(); //MapIterator {'ν•˜λ‚˜', 'λ‘˜', 'μ…‹'}  //keys: key κ°’λ§Œ 좜λ ₯

m.values(); //MapIterator {'one', 'two', 'three'} //values: values κ°’λ§Œ 좜λ ₯

m.entries(); //MapIterator {'ν•˜λ‚˜' => 'one', 'λ‘˜' => 'two', 'μ…‹' => 'three'}
            //entries: key와 values값을 λͺ¨λ‘ 좜λ ₯
m.has('ν•˜λ‚˜'); // true //has: Map의 값이 μ‘΄μž¬ν•˜λŠ”μ§€ 확인
m.delete('ν•˜λ‚˜'); // true  //delete: Map의 값을 제거

  >> m.get('ν•˜λ‚˜'); //Undefined
console.log(m.size); // 3 //Map의 크기λ₯Ό 확인

>> setν•œκ²ƒμ˜ 개수, 총 3개 / delete둜 값을 ν•˜λ‚˜ μ œκ±°ν›„μ— μ‹€ν–‰ν•˜λ©΄ 2둜 변함

1.3 Map의 ν™œμš©

let m = new Map();

m.set('ν•˜λ‚˜', 'one');
m.set('λ‘˜', 'two');
m.set('μ…‹', 'three');
m.set('λ„·', 'four');
m.set('λ‹€μ„―', 'five');
// Map의 μˆœν™˜
for (var variable of m) {
  console.log(`m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. ${variable[0]}`)
  console.log(`m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. ${variable[1]}`)
}

//m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. ν•˜λ‚˜
//m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. one
//m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‘˜
//m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. two
//m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ…‹
//m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. three
//m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ„·
//m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. four
//m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‹€μ„―
//m을 μˆœνšŒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. five
// 인덱슀λ₯Ό κ°€μ§€λŠ” μžλ£Œν˜• 맡핑
let temp = new Map([[1, 10],
[2, 20],
[3, 30],
[4, 40]]);

console.log(temp);

//Map(4) {1 => 10, 2 => 20, 3 => 30, 4 => 40}

2. Set

2.1 Set μ΄λž€?

: 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠμŒ, ν•©/ꡐ/차집합 μ‚¬μš© κ°€λŠ₯, μˆœμ„œκ°€ μ—†μŒ (index둜 ν˜ΈμΆœν•  수 μ—†μŒ)

let s = new Set('abcdeeeeeeeee');

console.log(s);  //Set(5) {'a', 'b', 'c', 'd', 'e'}
console.log(s.size);  //5
s.add('f'); //Set(6) {'a', 'b', 'c', 'd', 'e', 'f'}
s.delete('b'); //Set(5) {'a', 'c', 'd', 'e', 'f'}
s.has('c')
let a = new Set('abc');
let b = new Set('cde');

let union = new Set([...a].concat(...b)) // 합집합
//Set(5) {'a', 'b', 'c', 'd', 'e'}

let cro = [...a].filter(value => b.has(value)) // ꡐ집합

let dif = new Set([...a].filter(x => !b.has(x))); // 차집합

β–ͺ μ „κ°œ μ—°μ‚°μž: λ°°μ—΄ λ˜λŠ” 객체λ₯Ό ν•˜λ‚˜μ”© λ„˜κΉ€, μ „κ°œ

β–ͺ concat: κΈ°μ‘΄ μš”μ†Œμ— μΆ”κ°€λœ μš”μ†Œλ₯Ό λ”ν•΄μ„œ λ°˜ν™˜

// Set의 μˆœν™˜
for (var variable of s) {
  console.log(variable);
}

// a
// c
// d
// e
// f

0개의 λŒ“κΈ€