[JavaScript] Random Numbers | 원하는 범위의 랜덤 숫자 출력하는 방법, 배열 속 랜덤한 원소 출력하는 방법

이은진·2020년 11월 11일
0

JavaScript Study

목록 보기
13/24

프로그램을 짜다 보니 랜덤한 숫자나 문자를 출력해야 할 때가 생겼다. 행맨 게임도 Fetch API를 이용해서 단어를 가져올 수도 있지만 이미 만들어 둔 문자 배열에서 랜덤한 문자를 가져오도록 하려면 인덱스 값으로 랜덤한 숫자를 갖는 원소를 불러내야 한다. Math.random() 메서드를 이용해서 해결할 수 있다.

Math.random() 메서드의 역할을 살펴보고, 어떤 식으로 활용할 수 있는지 단계별로 알아보자.

Math.random() 메서드의 역할

Math.random()은 0부터 1 미만까지의 숫자를 무작위로 뱉어낸다.

const randomNum = Math.random()
console.log(randomNum)

// 0.6604313374630874

따라서 0부터 5 미만까지의 숫자를 랜덤으로 뽑으려면 Math.random()에 5를 곱하면 된다.

const randomNum = Math.random()
console.log(randomNum * 5)

//4.621221878402874

Math.random()으로 원하는 범위의 랜덤 정수 뽑는 방법

Math.floor()는 소수점 이하를 내림하는 메서드다. 0에서 5 미만까지, 즉 0부터 4까지의 정수를 랜덤으로 얻고자 한다면 Math.random()으로 나온 값에 5를 곱한 결과물을 내림하면 된다.

const randomNum = Math.random() * 5
const randomNumFloor = Math.floor(randomNum)
console.log(randomNumFloor)

//3

100부터 199까지의 정수를 랜덤으로 뽑고 싶으면 다음과 같이 작성한다.

const randomNum = Math.random() * 100
const randomNumFloor = Math.floor(randomNum + 100)
console.log(randomNumFloor)

//133

Math.random()으로 특정 배열의 원소를 무작위로 뽑는 방법

배열의 원소를 무작위로 뽑으려면 인덱스 값을 랜덤으로 지정해주면 된다. 원소가 4개인 배열에서는 인덱스 값이 0에서 3까지 필요하기 때문에, array.length 메서드로 구한 4를 곱해준 후, 그 값을 내림하면 된다.

const words = ['apple', 'exercise', 'boy', 'yogurt']
const selected = words[Math.floor(Math.random() * words.length]
console.log(selected)

//boy
profile
빵굽는 프론트엔드 개발자

0개의 댓글