📌  相关文章
📜  js 获取数组中的随机元素 - Javascript (1)

📅  最后修改于: 2023-12-03 14:43:33.185000             🧑  作者: Mango

JS 获取数组中的随机元素

在编写 JavaScript 程序时,有时候需要从数组中随机取出一个元素。我们可以使用 Math.random() 方法获取一个 0 到 1 之间的随机数,再将其乘以数组长度,向下取整得到随机索引,最终返回对应的元素。

下面是一个示例代码:

/**
 * 从数组中随机获取一个元素
 * @param {*} arr 目标数组
 * @returns {*} 随机元素
 */
function getRandomElementFromArray(arr) {
  const randomIndex = Math.floor(Math.random() * arr.length);
  return arr[randomIndex];
}

// 示例用法
const fruits = ["apple", "banana", "cherry", "durian", "eggplant"];
const randomFruit = getRandomElementFromArray(fruits);
console.log(randomFruit);

以上代码中定义了一个名为 getRandomElementFromArray() 的函数,它接收一个数组参数 arr,并返回该数组中随机选出的一个元素。

我们通过 Math.random() 方法生成一个 0 到 1 之间的随机小数。将其乘以数组长度,得到 0 到数组长度之间的浮点数。然后使用 Math.floor() 方法将其向下取整,保证其是一个整数且范围在 0 到数组长度 - 1 之间。最终返回对应索引的元素。

代码片段如下:

function getRandomElementFromArray(arr) {
  const randomIndex = Math.floor(Math.random() * arr.length);
  return arr[randomIndex];
}

这段代码可以直接复制到项目中使用,也可以根据需要进行改造。

如果需要使用 ES6 的语法,可以使用数组解构和 spread 运算符来简化代码:

const getRandomElementFromArray = arr => arr[Math.floor(Math.random() * arr.length)];

这段简化后的代码相比原版更加简洁,但是需要使用 ES6 语法。