JavaScript 随机选择不重复元素

本代码示例展示了如何在 JavaScript 中使用随机索引来从数组中选择不重复的元素。

const options = ['apple', 'banana', 'orange', 'kiwi', 'grape'];
let i = -1;
let randomIndex = getRandomIndex();

function getRandomIndex() {
  return Math.floor(Math.random() * options.length);
}

function randomSelect() {
  if (i === -1) {
    i = randomIndex;
    randomIndex = getRandomIndex();
    return options[i];
  } else {
    while (i === randomIndex) {
      randomIndex = getRandomIndex();
    }
    i = randomIndex;
    randomIndex = getRandomIndex();
    return options[i];
  }
}

代码解释

  1. options 数组: 定义一个包含水果名称的数组。
  2. i 变量: 用来记录上一次选择的索引,初始值为 -1 表示第一次选择。
  3. randomIndex 变量: 用来存储随机生成的索引,初始值为 getRandomIndex() 的返回值。
  4. getRandomIndex() 函数: 返回一个 0 到 options.length - 1 之间的随机整数,作为随机索引。
  5. randomSelect() 函数: 实现随机选择功能。
    • 如果 i 为 -1,表示第一次选择,直接将 randomIndex 赋值给 i,并将新的随机索引赋值给 randomIndex,并返回对应索引的元素。
    • 否则,进入循环,直到 randomIndex 不等于 i 为止,将 randomIndex 赋值给 i,并将新的随机索引赋值给 randomIndex,并返回对应索引的元素。

代码优化

  • 变量命名更具描述性,例如将 dbdbdb 改为 randomIndex
  • 使用 let 声明变量,因为变量值在程序运行过程中会发生改变。
  • 使用 === 比较运算符,避免类型转换。
  • 减少不必要的变量,例如可以将 randomIndex 直接赋值给 i,而无需使用中间变量。

总结

本代码示例展示了如何在 JavaScript 中使用随机索引来从数组中选择不重复的元素,并提供了详细的代码解释和优化建议。希望本示例能帮助你更好地理解 JavaScript 随机数生成和数组操作。

JavaScript 随机选择不重复元素

原文地址: https://www.cveoy.top/t/topic/ntJc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录