본문 바로가기

JavaScript

[JavaScript] 난수 생성 : Math. random() round(), ceil(), floor()

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의 기본 프로퍼티 중 하나일뿐.