๐ย Reference
๐ย Chapter
Object.groupBy()
Map.groupBy()
- Map.groupBy()
- Map.groupBy() ์ ์ ๋ฉ์๋๋ ์ ๊ณต๋ ์ฝ๋ฐฑ ํจ์์์ ๋ฐํ๋ ๊ฐ์ ์ฌ์ฉํ์ฌ ์ฃผ์ด์ง ๋ฐ๋ณต ๊ฐ๋ฅ ๊ฐ์ฒด์ ์์๋ฅผ ๊ทธ๋ฃนํํ๋ค.
- ์ต์ข
์ ์ผ๋ก ๋ฐํ๋๋ Map์ ํ
์คํธ ํจ์์์ ๋ฐํ๋ ๊ณ ์ ๊ฐ์ ํค๋ก ์ฌ์ฉํ๋ฉฐ, ์ด ํค๋ ๊ฐ ๊ทธ๋ฃน์ ์์ ๋ฐฐ์ด์ ๊ฐ์ ธ์ค๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค.
- ์ด ๋ฉ์๋๋ ์ฃผ๋ก ๊ฐ์ฒด์ ์ฐ๊ฒฐ๋ ์์๋ฅผ ๊ทธ๋ฃนํํ ๋, ํนํ ํด๋น ๊ฐ์ฒด๊ฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์๋ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค.
- ๊ฐ์ฒด๊ฐ ๋ถ๋ณ ๊ฐ์ฒด์ธ ๊ฒฝ์ฐ, ๋ฌธ์์ด์ ์ฌ์ฉํ์ฌ ํํํ๊ณ Object.groupBy()๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ฅผ ๊ทธ๋ฃนํํ ์ ์๋ค.
- ๋ฐฐ์ด๊ณผ ๊ฐ์ ๋ฐ๋ณต ๊ฐ๋ฅํ(iterable) ๊ฐ์ฒด์ ์์๋ฅผ ํน์ ๊ธฐ์ค์ ๋ฐ๋ผ ๊ทธ๋ฃนํํ๋ ์ ์ (static) ๋ฉ์๋์ด๋ค.
- ๋ฐํ ๊ฐ:
Map
๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
- ํค(Key)์ ์ ํ: ๊ทธ๋ฃน์ ํค๋ก ๊ฐ์ฒด๋ฅผ ํฌํจํ ๋ชจ๋ ๋ฐ์ดํฐ ์ ํ์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. ์ฝ๋ฐฑ ํจ์๊ฐ ๋ฐํํ๋ ๊ฐ(์: ๊ฐ์ฒด)์ด ๊ทธ๋๋ก ํค๋ก ์ฌ์ฉ๋๋ค.
- ์ฉ๋: ํค๋ก ์์์ ๊ฐ์ ์ฌ์ฉํด์ผ ํ๊ฑฐ๋, ์๊ฐ์ด ์ง๋๋ ๋ณ๊ฒฝ๋ ์ ์๋ ๊ฐ์ฒด๋ฅผ ํค๋ก ์ฌ์ฉํด์ผ ํ ๋ ์ ์ฉํ๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ์ฒด ์์ฒด๋ฅผ ํค๋ก ์ฌ์ฉํ์ฌ ๊ทธ๋ฃนํํ ๊ฒฝ์ฐ, ํด๋น ๊ฐ์ฒด์ ์์ฑ ๊ฐ์ด ๋ณ๊ฒฝ๋์ด๋ ๊ทธ๋ฃน์ ์ ๊ทผํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋ค.
- ์๋ณธ ๋ฐฐ์ด์ ์์๊ฐ ์๊ฒ ๋ณต์ฌ๋์ด ๋ฐํ๋ ๊ฐ์ฒด์ ๋ด๊ธฐ๋ฏ๋ก, ๋ฐํ๋ ๊ฐ์ฒด ๋ด์ ์์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์๋ณธ ๋ฐฐ์ด์ ํด๋น ์์์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์๋๋ค.
์์
const fruits = [
{ name: '์ฌ๊ณผ', category: '๊ณผ์ผ' },
{ name: '๋ฐ๋๋', category: '๊ณผ์ผ' },
{ name: '๋น๊ทผ', category: '์ฑ์' },
{ name: '๋ธ๊ธฐ', category: '๊ณผ์ผ' },
{ name: '์ค์ด', category: '์ฑ์' },
];