如何有效地随机选择数组项目而不重复
您的代码创建最近选择的数组以防止重复,并调用递归函数当所选项目位于最近的选择中时,命名为 ChooseName()。这种方法确保了唯一性,但如果数组大小有限,可能会导致无限循环。
它是递归函数吗?
是的,chooseName()调用自身找到一个独特的选择。递归使函数能够迭代数组项,直到找到不在最近选择中的项。
提高效率
要避免无限循环,请考虑另一种方法答案中建议:
function randomNoRepeats(array) {
var copy = array.slice(0);
return function() {
if (copy.length 此函数生成原始数组的副本并从中随机选择一个项目。使用所有项目后,它会创建原始数组的新副本,即使数组已用完,也能确保唯一的选择。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3