我正在做一个分配,我很难编写函数来获取两个变量之间的随机数。
基本上我想要的是脚本提示您输入第一个数字,然后是第二个,然后在这两个之间给我一个随机数。
如何在两个用户输入的变量之间获取随机整数? 我做错了什么? 这是我的代码:
var age = prompt("How old are you?");
var videogames = prompt("How many hours of video games have you played last month?");
function getRndInteger(age, videogames) {
return Math.floor(Math.random() * (videogames - age)) + age;
}
document.write(getRndInteger(age, videogames));
这个问题不同于另一个问题,因为我的问题是两个变量之间的一个随机数。另一个答案对我不起作用。 再次感谢!
答案 0 :(得分:2)
您需要先确定哪个变量较小,以便末尾添加的数字较小,并且差(high - low)
为正。您还需要确保您正在使用 numbers -prompt
返回一个字符串,因此+ <string>
将导致串联,而不是加法。
var age = prompt("How old are you?");
var videogames = prompt("How many hours of video games have you played last month?");
function getRndInteger(...args) {
const [low, high] = [Math.min(...args), Math.max(...args)];
return Math.floor(Math.random() * (high - low)) + low;
}
document.write(getRndInteger(age, videogames));
请注意,这会生成一个范围[low - high)
-包括“低”点,而没有“高”点。 (例如,从2-4的范围中,可能是2,而可能是3,但不是4。)如果要包括high
,请在差值上加一个:
var age = prompt("How old are you?");
var videogames = prompt("How many hours of video games have you played last month?");
function getRndInteger(...args) {
const [low, high] = [Math.min(...args), Math.max(...args)];
return Math.floor(Math.random() * (high - low + 1)) + low;
}
document.write(getRndInteger(age, videogames));