일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ES6
- CSS
- Component
- TypeScript
- HTML
- 자바스크립트
- Mongoose
- DART
- ECMAScript
- javscript
- Session
- MongoDB
- pug
- frontend
- heroku
- Flutter
- react
- CLONE
- API
- clonecoding
- node.js
- backend
- nodejs
- express
- GRID
- JavaScript
- graphQL
- form
- 리액트
- NextJs
- Today
- Total
Enjoy Programming
심심풀이 로또번호 생성기 본문
공부하던중 오늘이 토요일이라 로또 사러가야지 ~~ 하는 순간 로또번호 생성기가 만들고 싶어졌다.
자 그냥 시작해보자
우선 html이 js파일 하나 만들어주고
button클릭하면 로또번호 만들어지도록~!~!~!
자 만들어보자 일단~~ 바디랑 인풋을 가져오고 번호가 찍힐 h3태그를 생성후 바디에 종속시켰다.
그리고 이벤트 리스너 하나 만들고 함수명 아무거나 하나 지었다.
이제 로또넘버만들기 함수를 만들어보자
뭔가 조잡하다.. ㅎㅎ 근데 처음 만들어보는 자바스크립트 로또번호 생성기이다..
코드 리뷰를 해보자면 먼저 함수안에 로또 배열을 생성하고 임의의 i를 만들어줬다.
그리고 메인 포문으로 Math.floor와 Math.random()함수를 이용해 숫자를 생성하고
배열에 넣어줬다. 근데 발생한 문제가 중복값이 생기는 거였다. 음 파이썬이면 if문써서 리스트 안에 있으면 append안하고 넘기면 되는데
생각이 잘안났다... 그래서 그냥 메인 함수스코프 안에 함수 하나 더 생성해서 생성된 lotto배열만큼 포문을 돌리고
넘겨받은 인자값과 lotto배열안의 값을 하나씩 비교해서 tru or false를 리턴해줬다.
그렇게 해서 if문안에서 값이 false이면 push하도록 만들었다.
이렇게 하니 정상적으로 잘 나온다. 근데 한가지더 보기 안좋게 정렬이 안되있는...
sort()를 써서 정렬을 해봤으나 뭔가 이상했다..
찾아보니 javascript에서 sort는 ascii코드로 정렬을 하다보니 뭔가 꼬인다고 한다.
다시 sort에 함수를 하나 더만들어서 리턴값으로 비교인자를 마이너스 해준뒤 true 와 false를 반환해 오름차순 정렬을 해주고
끝@
재밌구만..
참고로 이거 만들기 전에 이미 로또 사왔다.....
'JavaScript > Vanilla Js' 카테고리의 다른 글
ES6 - Arrow function (array function) (0) | 2021.05.10 |
---|---|
Regular Expression - 정규표현식 (0) | 2021.05.09 |
Library && FrameWork (0) | 2021.05.08 |
Parameter && Argument (0) | 2021.05.08 |
Vanilla js Challenge 4 (0) | 2021.04.27 |