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 ์‘๋‹ต ์ฒ˜๋ฆฌ ๋“ฑ์—์„œ ๋งค์šฐ ์ž์ฃผ ์“ฐ์ด๋Š” ํ•„์ˆ˜ ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค ๐Ÿ’ช