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 :
์๋๋ด์ฉ์ ์ฒจ๋ถํ ์๋จ ๊ฐ๋ฐ์์ ํ๊ฒฉ์ ๋ณด๊ณ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ๊ฒ์ด๋ค.

๊ธฐ์กด 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 ๋ฐฐ์ฐ๊ธฐ ์์ํ๋ค.
์กฐ๊ธ ์ค๋ ๊ณ ์ด๋ ค์ธ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๊ณ์ ๋ค์ด์ ๊ฑฑ์ ๋ ๋์ง๋ง,
์ํด์ผ์ง! ์ํ ์ ์๋ค!!!!!!
์ํ ์ ์์ ๊ฑฐ๋ค?