Map?
λ°°μ΄μμ μ¬μ©νλ mapλ©μλκ° μλ JSμ "μλ£κ΅¬μ‘°" μ€ νλμΈ mapμ λν΄ μμ보μλ€.
λ§΅μ μκΈ°μ½κ² μ€λͺ
νμλ©΄ "κ°μ²΄"λΌλ ν€μλλ‘ μ€λͺ
μ΄ κ°λ₯ν κ² κ°λ€.
λ€λ§,κΈ°μ‘΄μ κ°μ²΄λ³΄λ€ λ²μ©μ±μ΄ λμ λ
μμ΄λΌκ³ μκ°νκ³ μλ€.
λ²μ©μ±μ μ°¨μ΄λ₯Ό μλ‘ λ€μλ©΄,
κ°μ²΄κ° κ°μ§λ "key" κ°μλ λ¬Έμμ΄ λλ μ¬λ³Όνμ μ΄ μ리ν μ μμΌλ,
Mapμ΄ κ°μ§λ "key" κ°μλ νμμ μ νμ΄ μμ μ λλ‘ λ€μν λ°μ΄ν° νμ
μ΄ μ리ν μ μλ€κ³ νλ€.
λν, μμκ° λ³΄μ₯λλ€.
Map μ μ¬μ© λͺ©μ
κ³μν΄μ μλ‘μ΄ μλ£κ΅¬μ‘° ννκ° λμ€λ μ΄μ λ κΈ°μ‘΄μ κ²μΌλ‘ νννλλ° μ νμ΄ μκΈ΄λ€κ±°λ λ³΄λ€ ν¨μ¨μ μ΄κ³ λΉ λ₯΄κ² μΌμ²λ¦¬λ₯Ό νκΈ° μν¨μ΄λΌκ³ μκ°νλ€.
μ°λ¦¬κ° νλ‘μ νΈλ₯Ό μ§ννλ©΄μ λ§€μΌ μλ‘μ΄ μ½λλ₯Ό 컀λ°νλ κ²κ³Ό κ°μ΄ λ³΄λ€ λ λ°μ μν€κ³ μ λμ¨ λ μμ€μ νλμ΄μ§ μμκΉ μΆλ€.
κΈ°μ‘΄μ κ°μ²΄λ³΄λ€ λ λ€μν μ©λλ‘ μ¬μ©μ΄ κ°λ₯νλ€κ³ νλ μ΄λ»κ² μ¬μ©νλμ§ μλμμ μμ보μ.
νν
Key - Value
key μλ μ΄λ ν μ νμ λ°μ΄ν° νμ μ΄λΌλ λ€μ΄μ¬ μ μμΌλ©°,
κ·Έ μ΄μ λ, mapμ keyμ μ λ ¬μμλλ‘ μ μ₯μ΄ λκΈ° λλ¬Έμ΄λΌκ³ νλ€.
Map μμ±
const myMap = new Map();
Map μμ± νμΈ
console.log(myMap);
// μΆλ ₯κ° : Map(0) {}
κ°λ console.logλ‘ μ¬λ¬κ°μ§λ₯Ό νμΈνλ€ λ³΄λ©΄ μλμ κ°μ νμμ μΆλ ₯κ°λ€μ λ§μ£ΌμΉλ€.
[Function (anonymous)]
Map μ μμ±νκ³ console.log()λ‘ μμ±ν mapμ νμΈνμ,
Map(0) {} λΌλ μ²μ보λ λ
μμ΄ μΆλ ₯λμ μ κΈ°νλ€.
νμ€ν λ΄κ° μ¬ν νλ‘κ·Έλλ°ν μ½λμ€μλ Mapμ΄λΌλ κ°μ²΄κ° μμλ 보λ€.
μΆλ ₯ κ° ν΄μ
Map(0) {}
JSμ Mapμ΄λΌλ κ°μ²΄μ μ΄λ€ λ°μ΄ν°λ λ΄κ²¨μμ§ μκΈ° λλ¬Έμ 0 μ΄λΌκ³ νμκ° λ κ²μ΄λ€.
{}μμλ Mapμ μ μ₯λμ΄ μλ key-value pairκ° λ€μ΄κ°κ² λλ€.
Map.set(key, value)
Map κ°μ²΄μ λ°μ΄ν° μ μ₯μ set()λ©μλλ₯Ό μ¬μ©νλ€.
setμ ()μμλ μ μ₯ν λ°μ΄ν°μ keyμ valueλ₯Ό λ£μ΄μ£Όλ©΄ λλ€.
μμ
myMap.set('one', 1);
myMap.set('two', 2);
myMap.set('three', 3);
μΆλ ₯ κ°
console.log(myMap);
// Map(3) { 'one' => 1, 'two' => 2, 'three' => 3 }
key μ value μ¬μ΄μ => λ keyμ value λ₯Ό λ§€ννλ "κΈ°νΈ"λΌκ³ μκ°νλ©΄ λλ€.
"one"μ΄λΌλ keyκ°μ΄ 1μ΄λΌλ valueκ°κ³Ό νλμ μμ μ΄λ£¨κ³ μλ€λ λ»μΌλ‘ ν΄μνλ€.
Map(3)μ "3"μ νμ¬ Map κ°μ²΄μμ 3κ°μ key-value pairκ° λ€μ΄μλ€λ λ»μ΄λ€.
Map.get(key)
mapμμ μνλ λ°μ΄ν°λ₯Ό μ‘°ννκ³ μ ν λλ get()λ©μλλ₯Ό μ¬μ©νκ³ ()μμλ ν΄λΉ κ°μ keyκ°μ λ¬Έμμ΄ ννλ‘ λ£μ΄μ€λ€.
μμ
// get μ€λ₯ μ½λ
console.log(myMap.get(one));
// ReferenceError: one is not defined
μ‘°νν λ°μ΄ν°μ keyλ νμ "λ¬Έμμ΄"λ‘ μ¨μ€λ€.
// get μ μ μ½λ
console.log(myMap.get('one'));
// 1
κ΄νΈμμ keyκ°μ λ¬Έμμ΄λ‘ μ¬μ©νκ² λλ©΄, μ μμ μΌλ‘ "one"μ΄ κ°μ§λ valueκ°μΈ 1μ΄ μΆλ ₯λλκ±Έ νμΈν μ μλ€.
size()
mapμ΄ κ°μ§λ key-value pairμ ν¬κΈ°=κΈΈμ΄λ₯Ό νμΈν μ μλ λ©μλμ΄λ€.
μμ
console.log(myMap.size);
μΆλ ₯ κ°
3
has(key)
map μ΄ κ°μ§κ³ μλ λ°μ΄ν°μΈμ§ μ‘΄μ¬μ¬λΆλ₯Ό νμΈν΄μ£Όλ λ©μλμ΄λ€.
μμ
// has μ€λ₯ μ½λ
console.log(myMap.has(three));
ReferenceError: three is not defined
// has μ μ μ½λ
console.log(myMap.has('three'));
μΆλ ₯ κ°
μΆλ ₯μ true or falseμΈ Boolean κ°μ΄ μΆλ ₯λλ€.
true
μμ ν€κ°μ μ μ΄μ£Όλ κ΄νΈμμλ "λ¬Έμμ΄" ννλ‘ μμ±ν΄μΌ νλ€.
delete(key)
mapμ΄ κ°μ§κ³ μλ key-value pairλ₯Ό μμ νλ λ©μλμ΄λ€.
μμ
console.log(myMap.delete('three'));
μΆλ ₯ κ°
true
delete λ©μλλ₯Ό μ¬μ©ν΄λ³΄λ Boolean κ°μ΄ λμ¨λ€.
κ·ΈλΌ νμ¬ map κ°μ²΄κ° κ°κ³ μμ§ μμ λ°μ΄ν°λ₯Ό μμ νλ €κ³ νλ©΄ μ΄λ€κ°μ΄ λμ¬μ§ μ€νν΄λ΄€λ€.
console.log(myMap.delete('four'));
// μΆλ ₯ κ° : false
μμνλλ‘ false κ° μΆλ ₯λλ κ±Έ νμΈν μμλ€.
delete μ μ© νμΈ
const myMap = new Map();
// λ°μ΄ν° μ μ₯
myMap.set('one', 1);
myMap.set('two', 2);
myMap.set('three', 3);
// λ°μ΄ν° μμ
console.log(myMap.delete('three')); // true
// μμ νμ myMap 체ν¬
console.log(myMap); // Map(2) { 'one' => 1, 'two' => 2 }
μ μ μ©λκ²μ νμΈ κ°λ₯ νλ€.
clear()
map κ°μ²΄κ° κ°κ³ μλ λͺ¨λ λ°μ΄ν°λ₯Ό μμ νλ λ©μλμ΄λ€.
μμ
myMap.clear();
console.log λ‘ νμΈμ΄ κ°λ₯νμ§ ν μ€νΈ ν΄λ΄€λλ° undefinedκ° λμ¨λ€.
κ·Έλμ λ©μλλ₯Ό μ¬μ©νκ³ μλμ console.log(myMap)μΌλ‘ λ°μ΄ν°κ° μ§μμ‘λμ§ νμΈν΄ 보μλ€.
μΆλ ₯ κ°
console.log(myMap);
// μΆλ ₯ κ° : Map(0) {}
clear λ©μλκ° μ μ μ©λκ²μ νμΈν μ μλ€.
λλ μ
λλ μ€λ Map κ°μ²΄λΌλκ²μ μ²μ μ ν΄λ΄€λ€.
mapμ κ·Έμ λ°°μ΄ μ‘°κ±΄ λ°λ³΅λ¬Έμ΄λΌκ³ λ§ μκ°νμλλ°, μ΄λ κ² μλ‘μ΄ κ°μ²΄μΈ JSμ Mapμ μκ²λλ μ¬λ°μλ€.
λ€μμλ setμ΄λΌλ μλ£κ΅¬μ‘°μ λν΄μλ 곡λΆν΄λ³Ό μκ°μ΄λ€.
#JS #μλ£κ΅¬μ‘°
#map
'JS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JS] : Iterator ( for ... of ) (0) | 2023.07.23 |
---|---|
[JS] : Set (0) | 2023.07.22 |
[JavaScript] : post.destroy() / await Posts.destroy({where : {postId}}) (0) | 2023.07.14 |
[JavaScript] : tirm() (0) | 2023.07.14 |
[JavaScript] : TypeError: Converting circular structure to JSON μ€λ₯ν΄κ²° (0) | 2023.06.14 |