일단 만드는 자바스크립트 - (1) 로또 번호 추첨

크롱·2023년 3월 28일
0

JavaSrcipt

목록 보기
2/53

🌈 로또 번호 추첨 기능 개발해보기

로또 번호를 추첨해주는 기능을 개발해보자!
1부터 45까지 숫자(정수)를 뽑아보자✅

랜덤 숫자 뽑기

Math.random();
➡ 0이상 1미만 실수float를 반환 (ex.0.9345452)

Math.random() * 45 + 1;
➡ 1이상 46미만 실수

우리는 실수가 아닌 정수를 원하기 때문에

parseInt();
➡ 소수점을 버리고 정수로 변환!

parseInt(Math.random() * 45 + 1);
➡ 1이상 45이하 정수



Array 배열

여러개의 값을 가진 변수처럼 생각하면된다

.push()

마지막 값을 추가

<script>
var lotto = [1,2,3,4,5,6];
        lotto.push(7);
        document.write(lotto);
</script>

// 결과 var lotto = [1,2,3,4,5,6,7]

⬇ 로또번호 6개를 추출하려면 빈 var 값에 6번 push 해주면 된다

<script>
 var lotto = [];
        lotto.push(parseInt(Math.random() * 45 + 1));
        lotto.push(parseInt(Math.random() * 45 + 1));
        lotto.push(parseInt(Math.random() * 45 + 1));
        lotto.push(parseInt(Math.random() * 45 + 1));
        lotto.push(parseInt(Math.random() * 45 + 1));
        lotto.push(parseInt(Math.random() * 45 + 1));
        document.write(lotto);
</script>

6개가 반복되니 반복문으로 다시 코드를 작성하자.

반복문 for, while

<script>
var lotto = [];

for (var i = 0; i < 6; i++){
   lotto.push(parseInt(Math.random() * 45 + 1));
}  //6번 반복!

document.write(lotto);
</script>

하지만 이 경우 중복된 숫자가 들어갈수도 있어서 if문을 통해 중복되는 숫자가 push 되지 못하게 만들어보도록하자.

조건문 if

특정 횟수를 반복하는 if문

중복된 로또값이 있는지 확인하려면 .indexOf()을 이용하고
-1이 나오면 (중복된게없으면) push 하게끔 해야한다.

<script>
var lotto = [];
       for (var i = 0; i < 6; i++){
           var num = parseInt(Math.random() * 45 + 1);
           if (lotto.indexOf(num) == -1) {
               lotto.push(num);
           }
       }
       document.write(lotto);
</script>

이렇게 코드를 쓰면 값이 중복될 경우 lotto=[1,2,3,4,5] 처럼 5개의 값만 나올 수 있기 때문에 특정 조건이 만족될때 까지 반복하는 while을 사용해야한다.

조건문 while

특정 조건이 만족될때까지 계속 반복

로또의 값이 6개가 될때 반복문을 빠져나온다.

<script>
var lotto = [];
while (lotto.length < 6) {
    var num = parseInt(Math.random() * 45 + 1);
    if (lotto.indexOf(num) == -1) {
                lotto.push(num);
     }
}
document.write(lotto);

</script>

배열에서 오름차순, 내림차순 정렬

오름차순 .sort((a,b)=>a-b)
내림차순 .sort((a,b)=>b-a)

<script> 
var lotto = [];
    while (lotto.length < 6) {
        var num = parseInt(Math.random() * 45 + 1);
        if (lotto.indexOf(num) == -1) {
                lotto.push(num);
            }
        }
lotto.sort((a,b)=>a-b); //오름차순으로 숫자를 정렬해줘!
document.write(lotto);

</script>
profile
👩‍💻안녕하세요🌞

0개의 댓글