Javascript 在For循环中迭代随机数

Javascript 在For循环中迭代随机数,javascript,for-loop,random,callback,Javascript,For Loop,Random,Callback,我正在尝试使用For循环将一个随机整数(0-2)添加到指定次数的变量中。我遇到的问题是,循环并不是每次循环都使用新的随机数,因此,如果我传入9,我只能得到0、9或18 我期望一个对象返回的键“a”和“b”具有不同的数值 以下是我的随机数获取工具: function randomNumber(min, max){ min = Math.ceil(0); max = Math.floor(3); return Math.floor(Math.random() * (max - mi

我正在尝试使用For循环将一个随机整数(0-2)添加到指定次数的变量中。我遇到的问题是,循环并不是每次循环都使用新的随机数,因此,如果我传入9,我只能得到0、9或18

我期望一个对象返回的键“a”和“b”具有不同的数值

以下是我的随机数获取工具:

function randomNumber(min, max){
   min = Math.ceil(0);
   max = Math.floor(3);
   return Math.floor(Math.random() * (max - min)) + min;
}
下面是我调用randomNumber()的函数:


我是一个初学者,所以我感谢你的帮助,因为我还没有找到任何关于这个问题的东西。提前感谢。

如果我理解正确,您希望在
for
循环的每次迭代中生成一个新的随机数。如果是这样,那么您也需要在每次迭代时调用您的
randomNumber()

函数randomNumber(){
const min=数学单元(0);
const max=数学楼层(3);
返回Math.floor(Math.random()*(max-min))+min;
}
函数objMaker(num){
设obj={
答:0,,
b:0
}
对于(变量i=0;i

生成
如果使用0或1作为最小值,则无需指定该值(仅指定最大值即可)。假设max为2,则以下函数将起作用

function randomNumber(max){
   return Math.round(Math.random() * max);
}

希望这能有所帮助。

所以您所做的是:将
randomNumber()
结果传递给
objMaker
函数的第一个参数。这里我强调“result of”,因为这意味着
randomNumber
函数中的
cb
参数是一个数字,这意味着它在函数中不会改变

函数随机数(最小值、最大值){
最小值=数学单元(0);
最大值=数学楼层(3);
返回Math.floor(Math.random()*(max-min))+min;
}
函数objMaker(cb,num){
console.log(cb);//注意这是一个数字
设obj={
答:0,,
b:0
}
对于(变量i=0;ilog(objMaker(randomNumber(),9))//randomNumber()这里返回一个随机值
Wow,这很有道理,我一定是被幻觉弄糊涂了。我欣赏多种解决方案。是的,我正在尝试理解回调函数的效果,所以为了学习,我确实需要为randomNumber()使用一个单独的函数。没问题。享受:)谢谢你的回复。现在完全有道理了。
objMaker(randomNumber(), 9)
// returns obj { a:0, b:0}
// or obj { a:9, b:9}
// or obj { a:18, b:18}
function randomNumber(max){
   return Math.round(Math.random() * max);
}