예를들어
var Array = [2,3,4];
Array.map(function(){
console.log(1)
});
일 때 Array 배열안의 값이 3개이기에, 실행해보면 콘솔창에 1이 3번 적혀있는것을 알 수 있다.
콜백함수에 파라미터를 적을 경우에는 그 어레이 안에 있는 파라미터를 하나씩 출력해 준다.
var Array = [2,3,4];
Array.map(function(a){
console.log(a)
});
라고 한다면 콘솔창에는 2,3,4가 한번씩 출력된다.
[2,3,4]가 한줄에 나오는 것이 아닌 2,3,4가 한줄에 하나씩 나오는 것임에 유의
function App (){
return (
<div>
{
Array.map(function(){
return (
<div className="list">
<h4>{ Array[0] }</h4>
</div> )
})
}
</div>
)
}
아쉽게도 Array[0]이라고 못을 박아뒀기 때문에 map함수가 돌때 계속 Array[0]만 뱉어내게 된다.
function App (){
return (
<div>
{
Array.map(function(a){
return (
<div className="list">
<h4>{ a }</h4>
</div> )
})
}
</div>
)
}
이렇게 하면 map함수가 돌때마다 <h4>
에 Array 배열안에 있는 데이터들이 들어가게 된다는 소리이다.
Tip. map 반복문으로 반복생성한 html엔 key={i} 같은 것을 넣어주어야한다.
없다면 warning메세지가 뜬다.
방법이 없는 것은 아니다. 방법은 바로
- html들을 담아둘 array자료를 하나 만든다.
- 일반 for 반복문을 이용해서 반복문을 돌린다.
- 반복될 때 마다 array 자료에
<div>
하나씩 추가해준다.- 원하는 곳에서 {array자료} 사용한다.
예를 들어서
function App (){
var Array = [];
for (var i = 0; i < 3; i++) {
Array.push(<div>안녕</div>)
}
return (
<div>
{ Array }
</div>
)
}
이렇게 되면 똑같이 나온다.
물론 JSX에서는 map을 자주 사용하니 그냥 map함수를 사용하도록 하자..!