map으로 배열을 이용
<ul>
{[
["사과", "맛있다"],
["바나나", "싫다"],
["포도", "맛없다"],
["귤", "귀찮다"],
["오렌지", "시다"],
].map((v) => {
return (
<li>
{v[0]} - {v[1]}
</li>
);
})}
</ul>
<ul>
{[
{ fruit: "사과", taste: "맛있다" },
{ fruit: "사과잼", taste: "달다" },
{ fruit: "포도", taste: "맛있다" },
{ fruit: "무화과", taste: "달다" },
{ fruit: "오렌지", taste: "시다" },
].map((v) => {
return (
<li>
{v.fruit} - {v.taste}
</li>
);
})}
</ul>
위 방법은 가독성이 안좋음 → props를 이용해 return 문에서 반복문을 돌림
<ul>
{[
{ fruit: "사과", taste: "맛있다" },
{ fruit: "사과잼", taste: "달다" },
{ fruit: "포도", taste: "맛있다" },
{ fruit: "무화과", taste: "달다" },
{ fruit: "오렌지", taste: "시다" },
].map((v) => {
return (
<li key={v.fruit + v.taste}>
{v.fruit} - {v.taste}
</li>
);
})}
</ul>
key에는 고유한 값을 넣어야함. fruit과 taste를 개별적으로 보면 ‘맛있다’ 부분이 중복되어 고유하지 않지만, {v.fruit + v.taste}는 모두 고유하여 key로 사용할 수 있음
.map((v, i) => {
return (
<li key={i}>
{v.fruit} - {i}
</li>);}