(Javascript)如何在两个用户输入的变量之间获取随机数?

时间:2019-02-25 00:44:53

标签: javascript variables random

我正在做一个分配,我很难编写函数来获取两个变量之间的随机数。

基本上我想要的是脚本提示您输入第一个数字,然后是第二个,然后在这两个之间给我一个随机数。

如何在两个用户输入的变量之间获取随机整数? 我做错了什么? 这是我的代码:

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));

这个问题不同于另一个问题,因为我的问题是两个变量之间的一个随机数。另一个答案对我不起作用。 再次感谢!

1 个答案:

答案 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));