JavaScript는 배열에서 임의의 값을 선택합니다

Ammar Ali 2023년10월12일
JavaScript는 배열에서 임의의 값을 선택합니다

이 튜토리얼에서는 JavaScript의Math.random()함수를 사용하여 배열에서 임의의 값을 선택하는 방법에 대해 설명합니다.

JavaScript에서Math.random()함수를 사용하여 배열에서 임의 값 선택

JavaScript에서 인덱스를 사용하여 주어진 배열에서 값을 선택할 수 있습니다. 주어진 배열에서 임의의 값을 선택하려면 0부터 배열 길이까지의 범위에서 임의의 인덱스를 생성해야합니다. Math.random()함수를 사용하여 무작위 값을 생성 할 수 있으며이 무작위 값의 범위를 설정하려면length함수를 사용하여 얻을 수있는 배열의 길이를 곱해야합니다.

Math.random()함수에서 생성 된 임의 값은 부동 소수점 값입니다. 부동 소수점 값을 정수로 변환하려면Math.floor()함수를 사용해야합니다. Math.floor()함수는 부동 소수점 숫자를 주어진 숫자보다 작은 정수로 변환합니다. 예를 들어, 5 개의 값으로 구성된 배열을 만들고 여기에서 임의의 값을 하나 선택하여 콘솔에 표시해 보겠습니다. 아래 코드를 참조하십시오.

var myArray = ['one', 'two', 'three', 'four', 'five'];
var rand = Math.floor(Math.random() * myArray.length);
var rValue = myArray[rand];
console.log(rValue)

출력:

two

위의 코드에서 랜덤 인덱스는 변수rand에 저장되며,이 인덱스를 사용하여 변수rValue에 저장 될 배열에서 임의의 값을 선택할 수 있습니다. 비트NOT연산자~~또는 비트OR연산자|를 사용할 수도 있습니다. Math.floor()함수 대신 부동 소수점 숫자를 정수로 변환합니다. 비트 연산자를 사용하는 것이 더 빠르지 만 수백만 개의 값을 포함하는 배열에는 작동하지 않을 수 있습니다. 예를 들어 비트NOT연산자를 사용하여 난수를 생성 해 보겠습니다. 아래 코드를 참조하십시오.

var myArray = ['one', 'two', 'three', 'four', 'five'];
var rand = ~~(Math.random() * myArray.length);
var rValue = myArray[rand];
console.log(rValue)

출력:

one

이제 비트OR연산자를 사용하여 난수를 생성 해 보겠습니다. 아래 코드를 참조하십시오.

var myArray = ['one', 'two', 'three', 'four', 'five'];
var rand = Math.random() * myArray.length | 0;
var rValue = myArray[rand];
console.log(rValue)

출력:

three

코드를 다시 실행하면 출력이 변경됩니다. 모든 코드를 다시 작성할 필요가 없도록 주어진 배열에서 임의의 값을 선택하는 함수를 만들 수도 있습니다. 예를 들어 주어진 배열에서 임의의 값을 선택하고 배열로 테스트하는 함수를 만들어 보겠습니다. 아래 코드를 참조하십시오.

function RandArray(array) {
  var rand = Math.random() * array.length | 0;
  var rValue = array[rand];
  return rValue;
}
var myArray = ['one', 'two', 'three', 'four', 'five', 'six'];
var rValue = RandArray(myArray);
console.log(rValue)

출력:

six

코드를 다시 실행하면 출력이 변경됩니다. 이제 배열에서 임의의 값을 선택하려면RandArray()함수 만 호출하면됩니다.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - JavaScript Array