개발자

배열의 일부만 보여주고 버튼 누르면 더 보여주기

2022년 10월 08일조회 251

안녕하세요. 만약 length가 10인 배열이 있는데, 처음에는 이 중 2개만 보여주고 어떤 버튼을 눌렀을때 나머지 10개를 다 보여주고 싶습니다. 이럴때에는 map을 돌릴 때 어떻게 구현을 해야지 끊어서 보여줄 수 있나요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

인기 답변

엄홍재님의 프로필 사진

어떤걸 구현하시는지 정확하게는 모르겠지만 한번 구현해 볼게요!! 2개만 보여준다는게 어떤 의미인지 모르지만 map을 통해서 각 값의 조건을 추가해서 원하는 값만 보여지도록 할 수 있습니다. const [buttonOn, setButtonOn] = useState(false) const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] array.map(item => { if(buttonOn) { //전부다 보이기 return <p>{item}</p> } else { // 원하는 두 개 보이기 // 원하는 조건의 두 개는 return 하고 나머지는 return null } )) 이런식으로 하고 버튼을 눌렀을 때 setButtonOn을 통해 buttonOn을 true로 변경시켜주면 되지않을까 추측해봅니다.

손정현님의 프로필 사진

여러 방법이 있는 것 같아요. 2개를 항상 먼저 보여주고 특정 상태 값에 따라 나머지 8개를 보여준다고 가정을 해보겠습니다. 저는 Javascript destructuring을 사용해서 first, second, rest 형식을 취할 것 같습니다. (https://javascript.info/destructuring-assignment) const [first, second, ...rest] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; const [showRest, setShowRest] = useState(false); const onClick = () => setShowRest(true); return ( <> <button onClick={onClick}>show rest</button> {first} {second} {showRest && rest.map(r => <>{r}</>)} </> )

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!