map()์ ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ๋ณํํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋๋ ํจ์์
๋๋ค.
์ฆ, โ๋ฐฐ์ด์ ํํ๋ ๊ฐ ์์ฒด๋ฅผ ๋ฐ๊พธ๊ณ ์ถ์ ๋โ ์ฌ์ฉํฉ๋๋ค.
1๏ธโฃ ์ซ์ ๊ณ์ฐํ ๋
๋ฐฐ์ด์ ๊ฐ ์ซ์์ ์ผ์ ํ ๊ท์น์ ์ ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค.
const prices = [1000, 2000, 3000];
const tax = 0.1;
// ๋ชจ๋ ๊ฐ๊ฒฉ์ ์ธ๊ธ ์ถ๊ฐ
const finalPrices = prices.map(price => price + price * tax);
console.log(finalPrices); // [1100, 2200, 3300]
๐ก
map()์ ์๋ณธ ๋ฐฐ์ด(prices)์ ๋ณ๊ฒฝํ์ง ์๊ณ , ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
2๏ธโฃ ๋ฌธ์์ด์ด๋ ๊ฐ์ฒด์ ํน์ ๊ฐ๋ง ๋ฝ์ ๋
๊ฐ์ฒด ๋ฐฐ์ด์์ ํน์ ์์ฑ๋ง ์ถ์ถํ ๋ ์์ฃผ ์ฌ์ฉํฉ๋๋ค.
const users = [
{ name: "Tom", age: 25 },
{ name: "Jane", age: 30 },
{ name: "Kim", age: 28 }
];
// ์ด๋ฆ๋ง ์ถ์ถ
const names = users.map(user => user.name);
console.log(names); // ["Tom", "Jane", "Kim"]
๐ก ๊ธฐ์กด ๊ฐ์ฒด ๊ตฌ์กฐ๋ ๊ทธ๋๋ก ๋๊ณ , ํ์ํ ๋ฐ์ดํฐ๋ง ๊บผ๋ด ์ ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค.
3๏ธโฃ ๋ฐ์ดํฐ ํ์์ ๋ฐ๊ฟ์ผ ํ ๋
์๋ฒ์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ๋ก ํธ์๋์์ ์ธ ์ ์๊ฒ ๊ฐ๊ณตํ ๋ ์ ์ฉํฉ๋๋ค.
const rawData = [
{ firstName: "Tom", lastName: "Lee" },
{ firstName: "Jane", lastName: "Kim" }
];
// fullName ํ์์ผ๋ก ๋ณํ
const formatted = rawData.map(user => ({
fullName: `${user.firstName} ${user.lastName}`
}));
console.log(formatted);
// [{ fullName: "Tom Lee" }, { fullName: "Jane Kim" }]
๐ก
map()์ ๊ฐ ๊ฐ์ฒด๋ฅผ ์๋ก์ด ๊ตฌ์กฐ๋ก ๋ณํํ ๋๋ ์ ํฉํฉ๋๋ค.
4๏ธโฃ React์์ JSX ๋ฆฌ์คํธ ๋ ๋๋ง ์
React์์๋ ๋ฆฌ์คํธ๋ฅผ ๋ ๋๋งํ ๋ map()์ ๊ฑฐ์ ํ์๋ก ์ฌ์ฉํฉ๋๋ค.
const fruits = ["์ฌ๊ณผ", "๋ฐ๋๋", "ํฌ๋"];
function FruitList() {
return (
<ul>
{fruits.map((fruit, index) => (
<li key={index}>{fruit}</li>
))}
</ul>
);
}
๐ก
map()์ ์ฌ์ฉํ๋ฉด ๋ฐฐ์ด ๋ฐ์ดํฐ๋ฅผ JSX ์์๋ก ๋ณํํ ์ ์์ต๋๋ค.
5๏ธโฃ ์ค์ฒฉ ๋ฐฐ์ด(2D ๋ฐฐ์ด) ๋ณํ ์
์ค์ฒฉ ๊ตฌ์กฐ์์๋ map()์ ์ค์ฒฉํด ์ฌ์ฉํ ์ ์์ต๋๋ค.
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
// ๋ชจ๋ ๊ฐ 2๋ฐฐ๋ก
const doubledMatrix = matrix.map(row => row.map(n => n * 2));
console.log(doubledMatrix);
// [[2, 4, 6], [8, 10, 12], [14, 16, 18]]
๐ก ๋ค์ฐจ์ ๋ฐฐ์ด๋
map()์ค์ฒฉ์ผ๋ก ์์ฝ๊ฒ ๋ณํํ ์ ์์ต๋๋ค.
๐ง ์ ๋ฆฌ โ map()์ ์จ์ผ ํ ๋
| ์ํฉ | ์ค๋ช | ์์ |
|---|---|---|
| ๊ฐ ๋ณํ | ๋ชจ๋ ๊ฐ์ ์ผ์ ๊ณ์ฐ ์ ์ฉ | ์ธ๊ธ, ๋จ์ ๋ณํ ๋ฑ |
| ํน์ ๋ฐ์ดํฐ๋ง ์ถ์ถ | ๊ฐ์ฒด ๋ฐฐ์ด์์ ํ์ํ ํ๋๋ง ๋ฝ๊ธฐ | ์ด๋ฆ๋ง ์ถ์ถ |
| ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ณ๊ฒฝ | ์๋ฒ ์๋ต ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ํํ๋ก ์ฌ๊ฐ๊ณต | firstName โ fullName |
| JSX ๋ณํ | React ์ปดํฌ๋ํธ์์ ๋ฆฌ์คํธ ๋ ๋๋ง | <li> ๋ฆฌ์คํธ ์์ฑ |
| ์ค์ฒฉ ๊ตฌ์กฐ ๋ณํ | 2D ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด ์์ ๋ฐฐ์ด ์ฒ๋ฆฌ | matrix.map(row => row.map(...)) |
๐ ๋ง๋ฌด๋ฆฌ
map()์ ๋จ์ํ ๋ฐฐ์ด์ ๋ฐ๋ณตํ๋ ์ฉ๋๊ฐ ์๋๋ผ,
๋ฐ์ดํฐ๋ฅผ **โ๋ค๋ฅธ ํํ๋ก ๋ณํโ**ํ๋ ๋ฐ ์ต์ ํ๋ ํจ์์
๋๋ค.
ํนํ React, ๋ฐ์ดํฐ ๊ฐ๊ณต, API ์๋ต ์ฒ๋ฆฌ ๋ฑ์์ ๋งค์ฐ ์์ฃผ ์ฐ์ด๋ ํ์ ๋ฌธ๋ฒ์
๋๋ค ๐ช
๋ต๊ธ ๋จ๊ธฐ๊ธฐ