Arrary 에서 랜덤하게 요소들을 선택하려면 어떻게 해야할까.
Math.random() 은 0~1 사이의 소수를 반환한다. 여기에 배열의 길이 만큼. arrary.length 를 곱해주면
예를 들어 안에 요소가 10개든 배열이라 10을 곱해주었다 치면 있다고 한다면
인덱스 0부터
0.xxxx~ 9.xxxxx 까지 나온다.
0~9 까지의 정수는 요소가 10개인 배열의 인덱스를 나타냄으로
뒤의 소수점 밑으로를 제거할 수 있으면 원하는 바를 이룬 것일거다.
Math.floor, Math.round, Math.ceil 이 있지만 이중
내림(floor)를 사용한다. 올림은 9.xxxx 가 10 이 될 터이고 이는 10개의 원소의 배열에 대한 인덱스 범위 0~9 를 초과한 것이기에 사용할 수가 없다. 따라서 floor(내림)
const ranIdx = Math.floor(Math.random() * quotes.length);
quote.innerText = quotes[ranIdx].quote;
author.innerText = quotes[ranIdx].author;
Math.random()
Math.round()
Math.ceil()
Math.floor()
* 배열의 길이(요소의 개수 구하기) :
Arrary.length -> 함수 아님, 소괄호 없음, Object 인 Array의 기본 프로퍼티 중 하나일뿐.
'JavaScript' 카테고리의 다른 글
[JavaScript] JS 에서 HTML을 생성해서 HTML 에 추가해주기 -document.createElement() (0) | 2022.03.02 |
---|---|
[JavaScript] div 태그 안의 여러개의 span 선택하기 (0) | 2022.03.02 |
[JavaScript] 간단한 시계만들기 : setInterval(), setTimeout(), Date() (0) | 2022.03.02 |
[JavaScript] 중복되는 string 값들은 하나의 변수로 관리하자/ innerText() (0) | 2022.03.02 |
[JavaScript] 백틱을 이용한 문자열 결합 & localStorage (0) | 2022.03.01 |