第一次在这里发帖。不过已经读了一会儿。我无法找到我需要的确切内容。如果我忽视某些事情,请提前道歉。
我有一项任务,我需要创建一个随机数生成器,为抽奖生成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 + ".");
我需要做什么,只是为了防止出现重复的数字?同样,我只能使用循环和数组,我必须使用函数,如果有意义的话,它应该保持非常“基本”。
希望我发布了您可能需要的所有代码。发电机实际上第一次提示用户输入他们是否想要状态或强力球彩票号码,然后根据他们选择的内容运行代码。如果需要,我会很乐意发布更多代码。
感谢您的帮助! Melony
答案 0 :(得分:2)
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 + ".");
&#13;