반응형
안녕하세요. 오늘은 JS로 로또(중복이 없는) 번호를 출력해보겠습니다.
1. 로또 번호 변수 생성
2. 로또 번호를 받을 배열을 생성
3. 반복문을 통한 로또 번호 랜덤화. Math를 이용 Math.ceil의 경우 주어진 숫자보다 크거나 같은 숫자 중 가작 작은 숫자를 integer로 반환 즉, 입력받은 숫자를 올림 한 정수를 리턴)
4. 로또 번호 중복 검사. indexOf() 이용 indexOf()의 경우 받는 인자의 인덱스를 확인해줌 즉, indexOf(num)의 경우 랜덤화 받은 num의 인덱스를 찾는다. 여기서 lotto는 현재 빈 배열인 상태이다. 빈 배열의 상태에서는 index의 값이 없는 상태 즉, 0보다 작은 상태를 의미한다. 여기서 우리가 더 확인해야 할 것은 중복을 체크해야 되기 때문에 같은 값이 나오면 안 된다. ex) 44, 44, 44, 24, 30, 13 이런 경우는 피해야 한다. 그러면 lotto에 들어간 값의 인덱스가 존재하지 않으면 값을 넣어줘야 된다. 즉, lotto.indexOf(num)이 된다. 그 후 중복되는 값이 생기는 경우 그 값이 나오지 않을 수 있게 되는데 그런 경우를 방지해 0보다 작은 상태가 아닌 경우에는 i를 1씩 감소시켜 다시 그 턴을 돌도록 하면 된다. 즉, 3번째에서 중복이 발생되었다면 그 값을 넣지 않게 되어 버리고 건너뛰게 되는데 그 경우 4번째로 가는 게 아니라 다시 3번째로 돌려서 값이 나오게 하면 된다.
5. 결과 호출
let num = 0;
let lotto =[];
for(let i=0;i<=5;i++){
num=Math.ceil(Math.random()*45);
if(lotto.indexOf(num)<0){
lotto.push(num);
} else {
i--
}
}
console.log(lotto);
반응형
'JS' 카테고리의 다른 글
clean JS (0) | 2022.08.22 |
---|---|
가위바위보 (0) | 2022.06.02 |
Scroll Effect (0) | 2022.05.29 |
Timer (0) | 2022.05.28 |
Text Effect (0) | 2022.05.27 |