该函数使用了一个数组 usedIndexes 用于记录已经出现过的随机数,以避免重复。如果所有选项都已经被选过了,就清空该数组,重新开始选择。这样就能够保证每次随机到的选项都不会重复。

const options = ['apple', 'banana', 'orange', 'kiwi', 'grape'];
const usedIndexes = []; // 记录已经出现过的随机数
function randomSelect() {
  if (usedIndexes.length === options.length) {
    usedIndexes.length = 0; // 清空数组
  }
  const randomIndex = Math.floor(Math.random() * options.length);
  if (usedIndexes.includes(randomIndex)) {
    return randomSelect(); // 继续生成随机数
  } else {
    usedIndexes.push(randomIndex);
    return options[randomIndex];
  }
}

如果需要输出多个随机选项,可以使用一个循环来调用该函数,每次输出一个不重复的选项。例如:

for (let i = 0; i < 5; i++) {
  console.log(randomSelect());
}

这将输出五个不重复的选项。如果需要输出更多选项,可以将循环次数调整为需要的次数。

JavaScript 随机选择不重复元素的函数

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

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