[ TIL ] [ ์ •๊ทœ๊ณผ์ • : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ2 ] Mapํ•จ์ˆ˜

2023. 8. 25. 00:08ใ†0. TiL ( Today I Learned )

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ 2 ์‹œํ—˜์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹œํ—˜์„ ์ณค๋‹ค. 

์‹œํ—˜์„ ์น˜๊ณ ๋‚˜์„œ Map ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ์ถ”๊ฐ€๋กœ ๊ณต๋ถ€ํ•ด ๋ณด์•˜๋‹ค.

 


 

 

Map์—๋Œ€ํ•œ ์„ค๋ช… : 

Map - JavaScript | MDN (mozilla.org)

 

Map - JavaScript | MDN

Map ๊ฐ์ฒด๋Š” ํ‚ค-๊ฐ’ ์Œ๊ณผ ํ‚ค์˜ ์›๋ž˜ ์‚ฝ์ž… ์ˆœ์„œ๋ฅผ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฐ’(๊ฐ์ฒด ๋ฐ ์›์‹œ ๊ฐ’ ๋ชจ๋‘)์€ ํ‚ค ๋˜๋Š” ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

developer.mozilla.org

๊ธฐ์กด์— JS๊ธฐ์ดˆ ๋ฌธ๋ฒ•์—์„œ map์—๋Œ€ํ•œ ๊ณต๋ถ€ : 

2023.08.01 - [2. JS๋ฌธ๋ฒ• ์ข…ํ•ฉ] - [ JavaScript ๋ฌธ๋ฒ• ์ข…ํ•ฉ๋ฐ˜ 2์ฃผ์ฐจ (5)] MAP ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

 

[ JavaScript ๋ฌธ๋ฒ• ์ข…ํ•ฉ๋ฐ˜ 2์ฃผ์ฐจ (5)] MAP ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Map๊ณผ, Set JavaScript์—์„œ ๊ฐ์ฒด(object)์™€ ๋ฐฐ์—ด(array)์„ ์ด์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•˜๊ณ  ๋ณต์žกํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ๋“ค์„ ‘ํ”„๋กœ๊ทธ๋ž˜๋ฐ’์ ์œผ๋กœ ๋ฐ˜์˜ํ•˜๊ธฐ์—” ๋งŽ์ด ๋ถ€์กฑํ•˜๋‹ค. Map๊ณผ Set

sa-growth-diary.tistory.com

 


๊ด€๋ จํ•œ YOUTUBE : 

์œ ํŠœ๋ธŒ ๊ฐœ๋ฐœ์ž์˜ ํ’ˆ๊ฒฉ [ new Map ์‚ฌ์šฉ๊ด€๋ จ ]

 

 

์•„๋ž˜๋‚ด์šฉ์€ ์ฒจ๋ถ€ํ•œ ์ƒ๋‹จ ๊ฐœ๋ฐœ์ž์˜ ํ’ˆ๊ฒฉ์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ๊ฒƒ์ด๋‹ค. 

๊ธฐ์กด object์™€ ๋น„๊ตํ•ด๋ณด๋ฉด, object๋Š” ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•  ๋•Œ user.1 ์ด๋ ‡๊ฒŒ ํ•ด์„œ ์ž…๋ ฅ์ด ๋ฐ”๋กœ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

let user = {};

user[1] = "112233" 
// ** ํ‚ค๋ฅผ ๋„ฃ์œผ๋ ค๋ฉด [] ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ์ˆซ์ž๋ฅผ ๋„ฃ์–ด์„œ ์ˆซ์ž๊ฐ’์„ ์ž…๋ ฅํ•ด์•ผํ•œ๋‹ค. ** //
const key = "ID"; 
user.ID = "abc";
// ๋งŒ์•ฝ ID์˜ key๊ฐ’์ด user์—์˜ํ•ด ๊ณ„์‚ฐ๋˜์–ด ๋‚˜์˜ค๋Š”๊ฒƒ์ด๋ผ๋ฉด ์•„๋ž˜์™€๊ฐ™์ด ์‚ฌ์šฉํ•ด์•ผ์•ผํ•จ.
user[key] = "abc";
// ๋”ฐ๋ผ์„œ, object ์ ‘๊ทผ๋ฐฉ๋ฒ•์ด ์–ด๋–ค๊ฒƒ์€ .์œผ๋กœ์ž…๋ ฅ๊ฐ€๋Šฅ, 
// ์–ด๋–ค๊ฒƒ๋“ค์€ []๋Œ€๊ด„ํ˜ธ๋กœ ์ž…๋ ฅํ•ด์•ผํ•˜๋Š” ๋ถˆ๊ฐ€ํ•œ๊ฒƒ๋“ค์ด ์กด์žฌํ•จ.(์ผ๊ด€์„ฑ์ด์—†์Œ)

Map์€ ์ˆซ์ž๋ฅผ ๋ฐ”๋กœ ์„ ์–ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

let userMap = new Map();

userMap.set(1,"112233"); // ์ˆซ์ž๋ฅผ ๋ฐ”๋กœ ์„ ์–ธ๊ฐ€๋Šฅ
userMap.set(key,"112233"); // ํŠน์ • key ๊ฐ’๋„ ๋ฐ”๋กœ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

// ** ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ. 
(map : key์— ์ŠคํŠธ๋ง,์ˆซ์ž,object๋„ ์˜ฌ์ˆ˜์žˆ์Œ function์ด ์žกํž์ˆ˜ ์žˆ์Œ.)**//

 

์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ˜ํผ๋Ÿฐ์Šค๋ฅผ ์—ด๊ณ  ๋ฐฉ๋ฌธ๊ฐ์ด ์—ฌ๋Ÿฌ ๋ช…์ด ์žˆ์–ด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์Œ“์—ฌ์žˆ์„ ๋•Œ,์–ด๋А ์ง€์—ญ์—์„œ ๋ช‡ ๋ช…์ด ์™”๋Š”์ง€ ์•Œ๊ณ  ์‹ถ๋‹ค!

let guestArr = [
    {name : "A", city: "์„œ์šธ"},
    {name : "B", city: "์ œ์ฃผ"},
    {name : "C", city: "๋ถ€์‚ฐ"},
    {name : "D", city: "์ œ์ฃผ"},
    {name : "E", city: "์ œ์ฃผ"},
    {name : "F", city: "๋ถ€์‚ฐ"},
    {name : "G", city: "์„œ์šธ"},
    {name : "H", city: "์„œ์šธ"},
    {name : "I", city: "์„œ์šธ"},
    {name : "J", city: "์„œ์šธ"},
 ];
 
 //{
  '์„œ์šธ': [
    { name: 'A', city: '์„œ์šธ' },
    { name: 'G', city: '์„œ์šธ' },
    { name: 'H', city: '์„œ์šธ' },
    { name: 'I', city: '์„œ์šธ' },
    { name: 'J', city: '์„œ์šธ' }
  ],
  '์ œ์ฃผ': [
    { name: 'B', city: '์ œ์ฃผ' },
    { name: 'D', city: '์ œ์ฃผ' },
    { name: 'E', city: '์ œ์ฃผ' }
  ],
  '๋ถ€์‚ฐ': [ { name: 'C', city: '๋ถ€์‚ฐ' }, { name: 'F', city: '๋ถ€์‚ฐ' } ]}

๊ธฐ์กด  object๋ฅผ ์ด์šฉํ•œ๋‹ค๋ฉด

let oGuest = {};
guestArr.forEach(item=>{
    if(!oGuest[item.city] ){  
        oGuest[item.city]=[]    
  }
    oGuest[item.city].push(item);

})

//** If ๋ฌธ์—์„œ ์กฐ๊ฑด์ ˆ์„ ๋น„๊ต ํ•ด์ฃผ๋Š” ๊ฐ’์€ true false ๋ฆฌํ„ดํ•ด์ฃผ๋Š” ๊ฐœ๋…์ด ์•„๋‹˜ **//

mapํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ๋‹ค๋ฉด

let mapGuest = new Map();

guestArr.forEach(item=> {
    if(!mapGuest.has(item.city)){     //** has -> iteam์ด ์ด ์žˆ๋Š”์ง€ true false ์ถœ๋ ฅ ** //
      mapGuest.set(item.city, []);
    } 

    mapGuest.get(item.city).push(item);
   
});

// ** has ๋‚ด์žฅํ•จ์ˆ˜ key์กด์žฌ์œ ๋ฌด true/false ๋ฆฌํ„ดํ•ด์ค˜์„œ ๋ช…ํ™•ํ•จ ** //

 

 

 


์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฃผ์ฐจ๊ฐ€ ๋์ด ๋‚ฌ๋‹ค.. ๋‚˜ ๊ฝค ํž˜๋“ค์—ˆ๋„ค ใ… ..

์‹œํ—˜์— ์•„์‰ฌ์›€์ด ๋‚จ์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ข€ ํ›„๋ จํ–ˆ๋‹ค. 

๋‹ค์Œ๋ถ€ํ„ฐ node ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค.

์กฐ๊ธˆ ์„ค๋ ˆ๊ณ  ์–ด๋ ค์šธ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๊ณ„์† ๋“ค์–ด์„œ ๊ฑฑ์ •๋„ ๋˜์ง€๋งŒ,

์ž˜ํ•ด์•ผ์ง€! ์ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค!!!!!!

์ž˜ํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ๋‹ค?