第一次在这里发布。不过,已经阅读了一段时间。我无法确切找到我所需要的。如果我忽略了一些事,请提前道歉。
我有一个作业,需要创建一个随机数生成器,该生成器为彩票生成1到59之间的6个随机数。我唯一遇到麻烦的部分是拿出代码来检查并防止出现重复的数字。我只允许在其中使用循环和数组,这就是为什么我遇到这么麻烦的原因。我知道这应该很容易,但是我是JavaScript的真正初学者,在这里完全感到茫然。
我需要怎么做才能确保输出中不使用重复的数字?再说一次,我只能使用循环和数组,而且一切都非常“基础”。
var powerballLotteryRandom;
var powerballRandom;
function genRanPowerballNum(min, max, num) {
var powerballArray = [];
for (var i = 0; i < num; i++) {
var ranNum = Math.random() * (max - min) + min;
powerballArray[i] = Math.round(ranNum);
}
return powerballArray;
}
powerballLotteryRandom = genRanPowerballNum(1, 59, 5);
powerballRandom = genRanPowerballNum(1, 35, 1);
if (lotteryChoice === "powerball") {
console.log("Your Powerball lottery numbers are " + powerballLotteryRandom + ", and your Powerball number is " + powerballRandom + ".");
简单地,我需要做些什么来防止出现重复的数字?再说一次,我只能使用循环和数组,我必须使用函数,并且如果可以的话,应该保持“基本”状态。
希望我发布了您可能需要的所有代码。生成器实际上首先提示用户输入他们想要的州还是强力球彩票号码,然后根据他们选择的内容运行代码。如果需要,我很乐意发布更多代码。
谢谢你的帮助!旋律
while
循环保持迭代,直到确定了非重复项为止。indexOf()
以确定是否ranNum
是重复的看是否存在阵列中或没有。注意,如果数组中不存在它,则indexOf()
返回-1
。while
循环完成,设置数组值(在这一点上,它应该是一个保证唯一)var ranNum = Math.random() * (max - min) + min;
while (powerballArray.indexOf(Math.round(ranNum)) > -1) {
ranNum = Math.random() * (max - min) + min;
}
powerballArray[i] = Math.round(ranNum);
var powerballLotteryRandom;
var powerballRandom;
function genRanPowerballNum(min, max, num) {
var powerballArray = [];
for (var i = 0; i < num; i++) {
var ranNum = Math.random() * (max - min) + min;
while (powerballArray.indexOf(Math.round(ranNum)) > -1) {
ranNum = Math.random() * (max - min) + min;
}
powerballArray[i] = Math.round(ranNum);
}
return powerballArray;
}
powerballLotteryRandom = genRanPowerballNum(1, 59, 5);
powerballRandom = genRanPowerballNum(1, 35, 1);
console.log("Your Powerball lottery numbers are " + powerballLotteryRandom + ", and your Powerball number is " + powerballRandom + ".");
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句