程序每次运行时的随机数生成器(javascript)

Random number generator every time the program runs (javascript)

我正在尝试编写一个代码,每次 运行s 时都会生成一个新的随机数。我这里有一个函数,没有语法错误,但为什么我的代码不是运行?当它完成所有工作时,它会吐出 undefined?

function GetRandomInteger(a, b){

    if (a > b){
        small = b;
        large = a;
    }
    else{
        small = a;
        large = b;
    }

}

var randomInt = GetRandomInteger(1,5);

console.log(randomInt);

这应该是这样的

function GetRandomInteger(a, b){
    let res = {};
    if (a > b){
        res.small = b;
        res.large = a;
    }
    else{
        res.small = a;
        res.large = b;
    }

    return res;
}

var randomInt = GetRandomInteger(1,5);

console.log(randomInt);

但这仍然不能像“广告”那样工作。你想要随机数,你不会那样得到这个。你必须使用 Math.random。在浏览器中写 math random 答案太多了,我不想复制它们,而且我认为 Whosebug 中可能已经有答案了。

根据我的评论,您的函数目前 return 没有任何值,这就是为什么您的函数输出为 undefined.

此外,要生成一个随机数,您最好使用 Math.random() 这是一个内置函数来完成此操作。一个例子是:

function GetRandomInteger(a, b) {
  return Math.round(Math.random() * (b - a) + a);
}

var randomInt = GetRandomInteger(1, 5);

console.log(randomInt );
console.log(GetRandomInteger(1, 5));
console.log(GetRandomInteger(1, 5));

这使用 Math.random() 生成一个介于 0 和 1 之间的随机数。然后将其乘以介于 a 和 [=17= 之间的 range ],然后加上最小值a。最后,它使用 Math.round() 将结果四舍五入为整数。

在上面的示例代码段中,这个 returns 一个介于 1 和 5(含)之间的数字。

如果 a 有时可以大于 b,则以下修改将允许它仍然有效:

function GetRandomInteger(a, b) {
  if (a <= b) {
    return Math.round(Math.random() * (b - a) + a);
  } else {
    return Math.round(Math.random() * (a - b) + b);
  }
}

var randomInt = GetRandomInteger(1, 5);

console.log(randomInt );
console.log(GetRandomInteger(1, 5));
console.log(GetRandomInteger(1, 5));
console.log(GetRandomInteger(5, 1));
console.log(GetRandomInteger(5, 1));