基本上我在 0-24 之间选择一个随机数:
Math.floor(Math.random() * myArray.length); // myArray contains 25 items
假设结果是 8。现在我想得到相同范围 0-24 中的另一个数字,但这次,我不想要 8。下一次,我可能会掷出 15。现在我想再次掷出但我不想要 8 或 15。我现在处理这个问题的方法是使用 do while 循环,如果数字相同,我就重新滚动。
这是我家庭作业的一小部分,事实上,我正在努力满足所有要求,所以我想你可以说这是为了我个人的利益,这样我就可以正确地写这篇文章,而不是在“每日 wtf”上结束”。
原文由 Pete 发布,翻译遵循 CC BY-SA 4.0 许可协议
设置一个包含所有值的数组 (这只是一个有效的选项,如果你只做小数字,比如你的例子中的 25) ,就像这样:
然后,在 0 和数组长度之间选择一个随机数:
从数组中 删除 该索引号:
Javascript splice() 从数组中删除索引项并将项作为数组返回。非常适合您使用。
从 roll 中获取第一个索引,因为无论如何我们只切出 1:
继续做尽可能多的卷。此外,您可能希望将原始数组存储为副本,以便您可以轻松地“重置”数字。