자바의 단골문제인 로또번호 생성하기입니다.
간단한 규칙 설명을 하자면, 랜덤으로 여섯개의 숫자(1~45)를 출력하는 과정이고, 중복값은 없어야합니다.
규칙과는 예외로, 보기 편하게 오름차순으로 정리까지 해보겠습니다.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>로또번호 생성하기</title>
<script>
var lotto = new Array();
while (lotto.length < 6) {
let lottoNum = Math.floor(Math.random() * 45) + 1;
if (!dupl(lotto, lottoNum)) {
lotto[lotto.length] = lottoNum;
}
}
lotto.sort(function(a, b){
return a - b;
});
document.write("<hr>");
function dupl(arr, num) {
let result = false;
for (let i = 0; i < arr.length; i++) {
if (arr[i] == num) {
result = true;
break;
}
}
return result;
}
document.write("lotto : " + lotto, "<br>");
</script>
</head>
<body>
</body>
</html>
1. 처음은 lotto 라는 배열을 생성합니다.
2. 배열은 인덱스 0번부터 5번까지 총 여섯개이기때문에 인덱스는 5까지 있고, 길이는 1부터이기때문에 6입니다.
3. Math.randon()은 0과 1사이의 소수이기때문에 45를 곱하고 소수점을 버리면(Math.floor()) 0과 44가 나오는데 여기서 1을 더하면 1~45 사이의 숫자가 랜덤으로 생성됩니다.
4. 중간에 function dupl(arr, num)은 매개변수가 arr과 num인 중복값 찾는 함수입니다. 이는 중복숫자가 나올 시 통과가 되는 함수입니다. 그렇기 때문에 로또번호 생성하는 반복문에서는 앞에 !를 붙여 중복이 아닐때의 임의숫자를 배열에 담도록 설정했습니다.
5. 익명함수를 통해서 sort기능을 사용했습니다. 자세한 설명은 아래 줄에 링크를 통해 확인할 수 있습니다.
https://www.w3schools.com/js/tryit.asp?filename=tryjs_array_sort2
'코딩 > JavaScript' 카테고리의 다른 글
JavaScript inline함수, 익명함수 (0) | 2020.06.27 |
---|---|
JavaScript window.onload를 사용하는 이유 (0) | 2020.06.26 |
JavaScript Array forEach문 (0) | 2020.06.25 |
JavaScript를 이용한 구구단 출력하기 (0) | 2020.06.22 |
자바스크립트 메시지박스 : alert, prompt, confirm을 이용하기. (0) | 2020.06.19 |
최근댓글