JavaScript 随机选择不重复元素
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];
}
}
代码解释
options数组: 定义一个包含水果名称的数组。i变量: 用来记录上一次选择的索引,初始值为 -1 表示第一次选择。randomIndex变量: 用来存储随机生成的索引,初始值为getRandomIndex()的返回值。getRandomIndex()函数: 返回一个 0 到options.length - 1之间的随机整数,作为随机索引。randomSelect()函数: 实现随机选择功能。- 如果
i为 -1,表示第一次选择,直接将randomIndex赋值给i,并将新的随机索引赋值给randomIndex,并返回对应索引的元素。 - 否则,进入循环,直到
randomIndex不等于i为止,将randomIndex赋值给i,并将新的随机索引赋值给randomIndex,并返回对应索引的元素。
- 如果
代码优化
- 变量命名更具描述性,例如将
dbdbdb改为randomIndex。 - 使用
let声明变量,因为变量值在程序运行过程中会发生改变。 - 使用
===比较运算符,避免类型转换。 - 减少不必要的变量,例如可以将
randomIndex直接赋值给i,而无需使用中间变量。
总结
本代码示例展示了如何在 JavaScript 中使用随机索引来从数组中选择不重复的元素,并提供了详细的代码解释和优化建议。希望本示例能帮助你更好地理解 JavaScript 随机数生成和数组操作。
原文地址: https://www.cveoy.top/t/topic/ntJc 著作权归作者所有。请勿转载和采集!