티스토리 뷰
자바스크립트에는 Math라는 내장 객체가 존재합니다. 이 내장객체는 랜덤으로 숫자를 반환받을 수 있는 메소드 random() 을 제공하는데, 여기에서는 이를 기본으로 1부터 45 사이의 숫자 6개를 반환받는 로또번호 추첨하기 스크립트를 작성해보도록 하겠습니다.
1
2
3
4
5
6
7
8
|
const number = []
while(number.length < 6){
let ran = Math.floor(Math.random() * 45) + 1
if(number.indexOf(ran) === -1){
number.push(ran)
}
}
console.log(number)
|
해설입니다.
1행 : 비어있는 배열을 생성하였습니다. 이제 여기에 1부터 45 사이의 숫자를 랜덤으로 여섯 개 추가할 예정입니다.
2행 : while 문을 실행시킵니다. 배열의 길이(length)가 6보다 작다면 반복문을 계속 실행합니다. 즉, 로또 번호 추첨이 끝날 때까지 반복문을 실행합니다.
3행 : Math.random() 을 사용했습니다. 이는 0부터 1 사이에서 난수(실수형)를 생성하여 반환해주는 기능입니다. 그러나 우리가 얻고자 하는 것은 1부터 45 사이의 숫자이므로, 여기에 45를 곱해주었습니다. 그러면 0부터 45 사이의 실수형 데이터를 얻을 수 있습니다. 마지막에는 이에 대해 Math.floor() 를 반영하여 소수점 이하 데이터를 제거해주고 1을 더해주었습니다. 그러면 결과적으로 1부터 45 사이의 난수를 얻을 수 있게 됩니다.
4행 : 배열의 indexOf 메소드를 사용하였습니다. 이는 배열의 요소에 인자(여기에서는 ran)가 포함되어 있을 경우에는 인덱스 번호를, 포함되어 있지 않은 경우에는 -1을 반환하는 메소드입니다. 따라서 이 코드는 우리가 생성한 난수가 배열에 포함되어 있지 않다면 배열에 추가하겠다는 의도를 나타내고 싶습니다.
5행 : 배열에 요소 추가하기 메소드인 push 입니다.
8행 : 반복문이 끝났다는 것은 여섯 개의 숫자가 모두 배열에 추가되었음을 의미합니다. 따라서 반복문 이후에 이를 콘솔에 출력하면 번호 추첨이 끝난 결과를 확인할 수가 있습니다.
아래는 코드의 실행 결과입니다.
1
|
[ 44, 24, 1, 43, 32, 23 ]
|
코드는 랜덤으로 숫자를 생성하므로, 실행 결과를 코드를 실행시킬 때마다 달라집니다.
'IT > 프로그래밍' 카테고리의 다른 글
자바스크립트 타이핑 효과 구현하기 (3) | 2021.02.19 |
---|---|
WOW.js 사용법 : 스크롤 애니메이션 라이브러리 (1) | 2021.02.11 |
윈도우즈 포트 죽이기 명령어 : kill port on windows system (2) | 2020.12.17 |
몽고디비 설치하기 : install mongo server on windows system (0) | 2020.12.17 |
프론트엔드 개발자 기술면접 질문 정리 (0) | 2020.11.06 |