이번 포스팅에서는 배열에서 임의의 요소를 가져오는 방법을 소개합니다.
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() 함수 예제와 마찬가지로 구조 분해 할당을 사용하여 첫 번째 요소를 얻습니다.
'JavaScript > JavaScript 문법' 카테고리의 다른 글
[JavaScript]console 객체 사용 방법 (0) | 2021.11.29 |
---|---|
[JavaScript]Object.assign() 함수와 Object.create()의 차이점 (0) | 2021.11.16 |
[JavaScript]var, let, const 차이 및 함수 유효범위 (0) | 2021.11.09 |
[JavaScript]Array.flat() 함수로 배열 병합 (0) | 2021.11.08 |
[JavaScript]const와 Object.freeze()의 차이 (0) | 2021.11.08 |
댓글