REFACTOR
article thumbnail

본 글은 HTML5, CSS 학습한 상태에서 작성한 글입니다.







예제풀이










이 전 글에서 정리하였던 Math 객체 중 Random 함수를 이용한 로또번호발생기이다.



 

1
2
3
4
5
<body>
    <button onclick="btn_lotto();">로또발생기</button>
    <ul id="lotto"></ul>
    <select id="lottolist"></select>
</body>
cs

<body>


button태그를 이용하여 버튼을 클릭할 시 btn_lotto()함수를 호출 한다.

그 값을 ul 태그와 select태그에 뿌려주기 위하여 ul , select 태그를 선언하였다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function btn_lotto() {
        var lotto = [];
        
        while (lotto.length <= 6) {
            n = getRandomInt(145); 
            if (lotto.findIndex(isDupliCheck) == -1) {
                //find() -> 배열에 어떤숫자가 있는지확인하고 그 숫자 그대로 돌려   
                //findindex()-> 어떤 숫자 있는지 확인하고 그 인덱스 값을 돌림  없으면 -1 돌림
                lotto.push(n);
            }
        }
 
        
        var out = "<li>"
        out += lotto.join("</li><li>");
        out += "</li>";
        document.getElementById("lotto").innerHTML = out;
 
        // lottolist 안에 동적 option 생성 추가 코딩
        var lottolist = document.getElementById("lottolist");
        for (var i = 0; i < 6; i++) {
            n = lotto[i];
            var op = new Option(n, n); 
            lottolist.options[i] = op;
 
    }
 
}
function getRandomInt(min, max) { 
        return Math.floor(Math.random() * (max - min + 1+ min);
}
function isDupliCheck(num) {
        return num == n;  
}
 
cs

<script>


함수 3개를 선언해주었는데 getRandomInt(), isDupliCheck() 함수는  btn_lotto함수 호출시에 호출되는 함수이다.




getRandomInt(min,max) :


Math.random함수를 이용하여 입력받은 min, max값을 이용하여 랜덤값을 생성한 후 그 값을 리턴한다.


 


isDupliCheck(num):


중복한 값이 있는지 확인하기 위한 함수이다. boolean형으로 반환



btn_lotto() :


먼저 배열을 선언한다. 반복문을 통하여 로또번호의 갯수만큼 랜덤값을 getRandomInt함수를 이용하여 생성한 후에


중복된 값이 없을경우 push 속성을 통하여 배열에 값을 삽입한다.



var out = "<li>'과 문자열 join 함수를 통하여 문자열로 ul태그 안에 li태그를 추가한다.


하단 for문은  select태그 안에 option을 채워넣기 위한 동작이다. 


var op = new Option(n,n) 형식으로 값을 넣어주게되면 알아서 value, text 값으로 삽입된다.







<실행결과>





profile

REFACTOR

@usnooy_

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그