반응형
청춘고양이
배움을 기록하는 곳
청춘고양이
전체 방문자
오늘
어제
  • Hello World (119)
    • JQuery (5)
    • In my opinion (4)
    • HTML&CSS (8)
    • JS (9)
    • JAVA (21)
    • Spring Boot (21)
    • Node.js (1)
    • Linux (7)
    • Git (2)
    • Kotlin (4)
    • Fluttor (4)
    • 정보처리기사 (19)
    • AWS (1)
    • Oracle (8)
    • MySQL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • js 비밀번호
  • js 패스워드 변경
  • 객체 안의 함수
  • 스크롤js
  • 쉬프트 연산
  • 제이쿼리 버튼클릭시 색 변경
  • js 로또 번호
  • ScrollEffectJs
  • 가위바위보js
  • 자바db연동
  • 제이쿼리 패스워드 변경
  • 청춘고양이
  • spring 기본설정
  • 제이쿼리 비밀번호
  • js
  • 초보개발
  • css
  • 제이쿼리
  • 자바
  • 중복 제거 로또

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
청춘고양이

배움을 기록하는 곳

JS

lotto JS

2022. 6. 2. 23:24
반응형

안녕하세요. 오늘은 JS로 로또(중복이 없는) 번호를 출력해보겠습니다.


1. 로또 번호 변수 생성

2. 로또 번호를 받을 배열을 생성

3. 반복문을 통한 로또 번호 랜덤화. Math를 이용 Math.ceil의 경우 주어진 숫자보다 크거나 같은 숫자 중 가작 작은 숫자를 integer로 반환 즉, 입력받은 숫자를 올림 한 정수를 리턴)

4.  로또 번호 중복 검사. indexOf() 이용 indexOf()의 경우 받는 인자의 인덱스를 확인해줌  즉, indexOf(num)의 경우 랜덤화 받은 num의 인덱스를 찾는다. 여기서 lotto는 현재 빈 배열인 상태이다. 빈 배열의 상태에서는 index의 값이 없는 상태 즉, 0보다 작은 상태를 의미한다. 여기서 우리가 더 확인해야 할 것은 중복을 체크해야 되기 때문에 같은 값이 나오면 안 된다. ex) 44, 44, 44, 24, 30, 13 이런 경우는 피해야 한다. 그러면 lotto에 들어간 값의 인덱스가 존재하지 않으면 값을 넣어줘야 된다. 즉, lotto.indexOf(num)이 된다. 그 후 중복되는 값이 생기는 경우 그 값이 나오지 않을 수 있게 되는데 그런 경우를 방지해 0보다 작은 상태가 아닌 경우에는 i를 1씩 감소시켜 다시 그 턴을 돌도록 하면 된다. 즉, 3번째에서 중복이 발생되었다면 그 값을 넣지 않게 되어 버리고 건너뛰게 되는데 그 경우 4번째로 가는 게 아니라 다시 3번째로 돌려서 값이 나오게 하면 된다.

5. 결과 호출

let num = 0;
let lotto =[];
for(let i=0;i<=5;i++){
	num=Math.ceil(Math.random()*45);
	if(lotto.indexOf(num)<0){
    	lotto.push(num);
    } else {
    	i--
    }
   }
   
console.log(lotto);

 

반응형
저작자표시 (새창열림)

'JS' 카테고리의 다른 글

clean JS  (0) 2022.08.22
가위바위보  (0) 2022.06.02
Scroll Effect  (0) 2022.05.29
Timer  (0) 2022.05.28
Text Effect  (0) 2022.05.27
    'JS' 카테고리의 다른 글
    • clean JS
    • 가위바위보
    • Scroll Effect
    • Timer
    청춘고양이
    청춘고양이
    신입개발자

    티스토리툴바