자바스크립트 배열의 내장 함수로, 반복되는 컴포넌트를 렌더링하기 위해 사용된다.
파라미터로 전달된 함수를 사용하여 배열 내 각 요소를 원하는 규칙에 따라 변환한 후 새로운 배열 혹은 리스트를 생성한다.
상황에 따라
for
문이나 다른 반복문을 대체하여 사용한다면 코드가 간편해진다.
다음은 for
문, map()
함수를 이용해 numbers 배열의 값을 두 배로 만드는 코드이다.
for
문 사용했을 때
const numbers = [1, 3, 5, 7, 9]
for (var i = 0; i < numbers.lenght; i++) {
numbers[i] = numbers[i] * numbers[i]
}
map()
함수 사용했을 때
const numbers = [1, 3, 5, 7, 9]
const square = numbers.map((num) => num * num);
map()
함수를 이용해 numbers 배열의 값을 두 배로 만들고, map()
에서 반환하는 새 배열을 square
변수에 할당했다.
map()
을 사용했을 때 코드가 더 간결해지고, 편리해지는 것을 볼 수 있다.
상황에 따라 for
문과 map()
함수를 적절히 사용해 보도록 하자!
React에서의 map()
함수는 Javascript의 map() 함수와 유사하다.
기본적인 문법은 다음과 같다!
array.map(element, index) => {
// 새로운 배열을 반환하는 로직
});
array
: 원본 배열element
: 현재 요소index
: 현재 요소의 인덱스(생략 가능하다)위 문법을 사용해 새로운 배열을 반환하는 로직을 작성할 수 있다. React에서는 이를 주로 사용하여 배열 요소들을 JSX로 변환하고, 이를 화면에 렌더링한다.
function App() {
return (
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
)
이렇게 다섯 개의 li
요소가 담겨 있는 코드를 map()
함수를 이용해 간결하게 만들어 보자!
const array = [1, 2, 3, 4, 5];
const listItems = array.map((item) =>
<li>{item}</li>
);
return (
<ul>{listItems}</ul>
);
array
배열의 각 요소를 반복하고,
각 요소를 <li>
태그로 래핑하여 새로운 배열 listItems
를 만든다.
또한 listItems
배열을 렌더링해 <ul>
리스트를 생성한다.
const array = [1, 2, 3, 4, 5];
return (
<ul>{ array.map(item => <li>item</li> }</ul>
);
또는 이렇게 바로 map()
함수를 사용해 렌더링하는 방법도 있다.
const people = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 },
];
const personList = people.map((person) =>
<li>{person.name}, {person.age}</li>
);
return (
<ul>{personList}</ul>
);
위 예시에서는 people
배열의 각 객체를 반복하고,
각 객체의 name
과 age
속성을 이용하여 새로운 배열 personList
를 만든다.
또한 personList
배열을 렌더링하여 <ul>
리스트를 생성한다.
위 블로그는 ChatGPT의 도움을 받아 작성되었습니다