Sparta Coding Club/Today I Learned [TIL]

[TIL] #DAY - 044 - Js 랜덤, 난수 생성 (내일배움캠프AI 3기)

양한마리 2022. 11. 8. 09:14
728x90



Js에서 사용하는 랜덤 생성 코드

Math.random, Lodash, sort() 이용해서 랜덤해보자

자세히 알아보자.

 





Math.random

Math.random 함수를 사용하여 배열에서 임의의 인덱스를 가져올 수 있습니다.

 

그런 다음 랜덤한 인덱스를 사용하여 배열에서 요소를 가져올 수 있습니다.

 

다음은 Math.random() 함수를 사용하여 배열에서 랜덤한 값을 추출하는 예제입니다.

const strArray = ['A', 'B', 'C', 'D', 'E'];

const randomValue = strArray[Math.floor(Math.random() * strArray.length)];

 

Math.random() 함수는 0 ~ 1 사이의 숫자를 반환합니다.

 

그리고 0과 배열의 마지막 인덱스 사이의 값을 구하기 위해서는 Math.random() 함수와 배열의 length를 곱합니다.

 

마지막으로 Math.random() 함수의 반환 값 * 배열의 length는 정수 또는 실수이므로 Math.floor() 함수를 호출하여 정수로 반올림합니다.


Lodash

Lodash는 JavaScript에서 array, collection, date 등 데이터를 쉽게 다룰 수 있게 해주는 라이브러리입니다.

 

크롬 콘솔에서 테스트하기 위해서는 아래 명령어를 콘솔에 입력합니다.

fetch('https://cdn.jsdelivr.net/npm/lodash@4.17.4/lodash.min.js')
    .then(response => response.text())
    .then(text => eval(text))

 

다음은 Lodash에서 지원하는 sample() 함수를 사용하여 컬렉션에서 임의의 요소를 가져오는 예제입니다.

const strArray = ['A', 'B', 'C', 'D', 'E'];

const randomValue = _.sample(strArray);

 

다른 배열에서 임의의 요소를 가져오는 다른 방법으로는 random() 함수가 있습니다.

const strArray = ['A', 'B', 'C', 'D', 'E'];

const randomValue = _.random(0, strArray.length - 1, false);

 

첫 번째 매개변수와 두 번째 매개변수인 (배열의 길이 - 1) 사이의 랜덤 값을 반환합니다.

 

세 번째 매개변수는 실수 반환 여부입니다.

 

마지막 방법으로는 shuffle() 함수가 있습니다.

 

shuffle() 함수는 배열 또는 객체의 요소를 섞습니다.

const strArray = ['A', 'B', 'C', 'D', 'E'];

const randomArray = _.shuffle(strArray);

const [randomValue] = randomArray;

ES6의 구조 분해 할당을 사용하여 뒤섞인 배열의 첫 번째 요소를 얻습니다.


sort() 함수로 섞기(Shuffle)

배열의 sort() 함수를 사용하여 배열을 섞을 수 있습니다.

const strArray = ['A', 'B', 'C', 'D', 'E'];

const randomArray = strArray.sort(() => 0.5 - Math.random())

const [randomValue] = randomArray;

Lodash의 shuffle() 함수 예제와 마찬가지로 구조 분해 할당을 사용하여 첫 번째 요소를 얻습니다.

출처 : https://developer-talk.tistory.com/247

728x90
반응형