✍ Today I Learned
- [생일, 디데이 계산기]
getTime()
메서드는 1970년 1월 0시 0분 0초부터 현재까지의 시간을 밀리초 단위로 환산한 값을 반환한다.
Date()
객체를 할당한 변수끼리는 밀리 초로 연산이 가능하다.
- 기간을 출력할 때에는 주로 밀리초 단위를 사용하여 연산한다.
- 날짜 관련 데이터는 moment.js 또는 FullCalendar 를 활용하는 것도 좋은 방법!
- Set 객체에서
entries()
메서드로 값을 출력하려면 반복문을 중첩으로 사용해야 한다.
- 객체도 연관 배열이라고 볼 수 있다.
- [로또 번호 추첨기 ver. 1 (Set을 사용하기)]
- Set객체는 중복을 허용하지 않기 때문에 새로운 Set의 size가 6이 될 때까지 while문을 실행한다.
- 빈 배열을 만들어서
forEach()
메서드로 Set 객체의 값들을 빈 배열에 넣어준다.
- 배열을
sort()
메서드로 정렬한 뒤 출력!
- for문을 이용할 때에는 증감식을 i 대신 Set객체의 size가 6이 될 때까지로 설정한다.
- [로또 번호 추첨기 ver. 2 (Set을 사용하지 않기)]
- 빈 배열에 랜덤 숫자를
push()
하는 시점과 중복 숫자를 검사하는 시점이 좀 헷갈렸는데 includes()
메서드를 이용하여 간단히 해결하였다.
- 랜덤 숫자를 먼저 변수에 할당하고 그 변수가 배열 안에 없으면 배열에
push()
- 배열의 length가 6이 될 때까지 반복!
- 로또 번호 추첨을 배열 순환 메서드를 사용하지 않고 구현하고 싶어서 엄청난 삽질을 해보았지만 결과적으로 구현하지 못했다. 제어문의 흐름을 다시 공부해야겠다.
includes()
메서드를 대체할만한 메서드는 indexOf()
메서드, 찾는 값이 없으면 -1을 반환한다.
- 반복하는 메서드들을 잘 활용하면 코드를 효율적으로 줄일 수 있다.