Front-end/Javascript

(JavaScript)로또

doheun 2023. 2. 27. 17:21
반응형

로또

HTML

HTML
<body>
<fieldset>
    <legend>로또번호 생성하기</legend>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <span>로또 번호 :</span>
    <span></span>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <span>보너스 번호 :</span>
    <span></span>
    <button onclick="lottoPrint()">생성</button>
</fieldset>
</body>

JavaScript

1.랜덤함수

function makeBall(){
    return Math.floor(Math.random()*45+1);
}

2.중복제거

function lottoBalls(){
    //랜덤담을 배열 생성
    var balls=new Array();
    var count=0;
    while(count<7){
        var ball=makeBall();
        //balls배열에 뽑은 숫자 없으면 추가
        if(balls.indexOf(ball)==-1){
            balls.add(ball);
            count++;
        }
    }
    return balls;
}

3.화면출력

function lottoPrint(){
    //DOM탐색으로 span태그내부에 뽑은 배열 출력
    var spans=document.getElementByTagName("span");

    //랜덤 배열 저장 후 6개+1개(보너스) 구분
    var obj=lottoBalls();
    var ball6=obj.slice(0,6);
    var bonus=obj.pop();

    //배열요소들이 사전적으로 정렬이 되어있기 때문에 숫자기준으로 정렬
    ball6.sort(function(a,b){return a-b;});
    //배열사이에 - 넣기 
    balls.join("-");
    spans[1].innerHTML=`<div style="font-size:50px; color: blue;"> ${balls}</div>`;
    spans[3].innerHTML=`<div style="font-size:50px; color: green;"> ${bonus}</div>`;

}

기타 참고

  1. &nbsp;
    공백 1칸(spacebar)
  2. Math.random()
    0~1사이의 무작위 수
  3. Math.floor()
    소수점 이하 버림
  4. 배열 내부의 숫자들을 기준으로 정렬할 때 어떤 요소로 정렬할지 기준을 정해야한다.
반응형

'Front-end > Javascript' 카테고리의 다른 글

(JavaScript)DOM -appendChild,insertBefore  (0) 2023.03.03
(JavaScript)DOM탐색 속성  (0) 2023.03.02
(JavaScript)window객체-open,close  (0) 2023.02.28
(JavaScript)날짜 객체  (0) 2023.02.27
(JavaScript)함수  (0) 2023.02.23