JavaScript/JavaScript 문법

[JavaScript]배열에서 임의의 요소를 가져오는 방법

DevStory 2021. 11. 10.

이번 포스팅에서는 배열에서 임의의 요소를 가져오는 방법을 소개합니다.

 


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() 함수 예제와 마찬가지로 구조 분해 할당을 사용하여 첫 번째 요소를 얻습니다.

반응형

댓글