JavaScript 從陣列中選取隨機值

Ammar Ali 2023年10月12日
JavaScript 從陣列中選取隨機值

本教程將討論如何使用 JavaScript 中的 Math.random() 函式從陣列中選擇一個隨機值。

使用 JavaScript 中的 Math.random() 函式從陣列中選擇一個隨機值

我們可以通過在 JavaScript 中使用其索引從給定陣列中選擇一個值。要從給定的陣列中選擇一個隨機值,我們需要生成一個在 0 到陣列長度範圍內的隨機索引。我們可以使用 Math.random() 函式生成一個隨機值,並設定這個隨機值的範圍,我們必須將它乘以我們可以使用 length 函式得到的陣列長度。

Math.random() 函式生成的隨機值是一個浮點值。要將浮點值轉換為整數,我們必須使用 Math.floor() 函式。Math.floor() 函式將浮點數轉換為小於給定數字的整數。例如,讓我們建立一個包含五個值的陣列並從中隨機選擇一個值並將其顯示在控制檯上。請參考下面的程式碼。

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