JavaScript 从数组中选取随机值

Ammar Ali 2021年10月2日 2021年7月3日
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() 函数。

Author: 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