로또 추첨기
→ 1 ~ 45까지의 숫자 중 공 7개를 뽑아 화면에 표시
📌 순서도
1. 1 ~ 45까지의 숫자를 섞는다.
2. 공 7개를 뽑는데, 마지막 공은 보너스 공이 된다.
3. 1초마다 공을 하나씩 화면에 표시한다. (공이 7개이므로 총 7초 동안 보여준다.)
📍 1에서 45까지의 숫자를 추첨하는 코드
: 숫자를 뽑은 뒤 candidate 변수에 저장
const candidate = Array(45).fill().map((v, i) => i + 1);
📍 sort
: sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
Array.prototype.sort() - JavaScript | MDN
sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.
developer.mozilla.org
* 구문
arr.sort([compareFunction])
compareFunction
: 정렬 순서를 정의하는 함수 / 생략하면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬
compareFunction(a, b)에서 a와 b가 비교되는 두 요소라면,
✓ a - b가 0보다 크면 → b, a 순서로 정렬
✓ a - b가 0보다 작으면 → a, b 순서로 정렬
✓ a - b가 0이면 → 순서 유지
eg/ [1, 3, 16, 25, 32]라는 배열이 있고, 32와 16을 뽑았을 때?
→ a가 32 b가 16이 되고 32-16=16으로 0보다 크므로 b(16), a(32) 순서로 정렬
=> 뽑을 수 있는 모든 쌍에 compareFunction을 적용하면 배열의 값이 오름차순으로 정렬됨
const winBalls = shuffle.slice(0, 6).sort((a, b) => a - b); // sort 정렬
https://github.com/jungwonyu/js-prac/tree/main/lotto
GitHub - jungwonyu/js-prac: 자바스크립트 연습
자바스크립트 연습. Contribute to jungwonyu/js-prac development by creating an account on GitHub.
github.com
'개발일지 > Web Development' 카테고리의 다른 글
[CSS] 다운받은 웹폰트 적용하기 (0) | 2022.08.03 |
---|---|
[JavaScript] async와 await (0) | 2022.06.12 |
[JavaScript] 가위바위보 게임 만들기 (0) | 2022.06.07 |
크롬 익스텐션 JSONView 설치 (0) | 2022.01.25 |
jQuery 연습하기 (0) | 2022.01.25 |