Javascript 如何让数学随机工作?

Javascript 如何让数学随机工作?,javascript,html,math,Javascript,Html,Math,我用math.random编写了这段代码,目的是生成一个介于1到3之间的随机数,但当我按下“单击我”按钮时,它只给出+3,而不是介于1到3之间的随机数 当我点击按钮时,我希望它给出1到3之间的值 每次单击按钮时生成随机数,而不是在脚本顶部。还有,为什么你要从3中减去1,然后再加回来 function cookieClick(number){ var rand = Math.floor(Math.random() * 3) + 1; cookies = parseInt(cookies)

我用math.random编写了这段代码,目的是生成一个介于1到3之间的随机数,但当我按下“单击我”按钮时,它只给出+3,而不是介于1到3之间的随机数

当我点击按钮时,我希望它给出1到3之间的值


每次单击按钮时生成随机数,而不是在脚本顶部。还有,为什么你要从3中减去1,然后再加回来

function cookieClick(number){
  var rand = Math.floor(Math.random() * 3) + 1;
  cookies = parseInt(cookies) + rand;
  document.getElementById("cookies").innerHTML = cookies;
  localStorage.setItem('cookies', cookies);
}

您可以在变量rand上使用%

例:

-或


问题在于,您将随机数设置一次,而不是每次按下
按钮时生成一个新的随机数。您需要在每次按下按钮时生成一个新的随机数。请看这把小提琴:

您的代码工作正常,您只生成一次随机数。如果要删除缓存并重新加载页面,则会生成一个不同的数字。例如,我在你的页面上得到+2

你需要在你的点击按钮中生成一个新的随机数

function cookieClick(number){
cookies = parseInt(cookies) + Math.floor(Math.random() * (3 - 1 + 1)) + 1;
document.getElementById("cookies").innerHTML = cookies;
localStorage.setItem('cookies', cookies);}

适合我:每次运行脚本时,我都会得到一个介于1和3之间的数字。如果您希望每次单击按钮时,
rand
都不一样,那么您就错了
rand
将在整个脚本中保持不变,因为您保存该值时从未重新计算随机数。您编辑了您的帖子。如果您每次单击按钮时都想要一个新的随机数,则需要在每次单击时生成该数字,而不是在脚本的顶部:@Brennan谢谢,它适合我。
var val = rand % 3;
if(val == 0){
   val = 1;
}
var rand = Math.floor((Math.random() * 3) + 1);
function cookieClick(number){
cookies = parseInt(cookies) + Math.floor(Math.random() * (3 - 1 + 1)) + 1;
document.getElementById("cookies").innerHTML = cookies;
localStorage.setItem('cookies', cookies);}