Search

랜덤으로 뽑는 기능 구현하기

내장함수 사용

Math.random() 함수를 사용하여 참여자 목록에서 무작위로 한 명의 당첨자를 선택하려면, 먼저 참여자 목록의 길이에 해당하는 난수를 생성하고, 그 숫자를 인덱스로 사용하여 배열에서 한 명을 선택해야 한다. Math.random()은 0과 1 사이의 난수를 생성하므로, 이를 배열의 길이에 맞게 조정한다.

구현한 코드

const WinnerPage: React.FC<WinnerPageProps> = ({ participants, setParticipants }) => { // 참여자가 있을 때 랜덤으로 당첨자를 선택 const winnerIndex = Math.floor(Math.random() * participants.length); const winner = participants[winnerIndex]; // ... 생략 export default WinnerPage;
TypeScript
복사
이 코드는 WinnerPage 컴포넌트가 마운트될 때 participants 배열에서 무작위 인덱스를 사용하여 당첨자를 선택한다. Math.floor() 함수는 Math.random()에 의해 생성된 소수점 값을 버림하여 정수 인덱스로 만든다. 이 인덱스는 participants 배열에서 당첨자를 선택하는 데 사용된다.

주의할 점

단, 이 방식은 참여자가 변경될 때마다 새로운 당첨자를 선택하기 위해 컴포넌트가 새로 마운트될 때마다 실행되며, participants 배열이 비어 있을 때는 당첨자를 선택하지 않도록 조심해야 한다.