π§© JavaScript map() μ¬μ© μμ κ³Ό μμ μ 리
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 μλ΅ μ²λ¦¬ λ±μμ λ§€μ° μμ£Ό μ°μ΄λ νμ λ¬Έλ²μ
λλ€ πͺ