提问人:preston17 提问时间:2/23/2023 最后编辑:Tim Lewispreston17 更新时间:3/31/2023 访问量:67
如何防止 Math.random 重复返回?
How to keep Math.random from repeating a return?
问:
所以我有这个 Math.random 函数,当我调用该函数时,它偶尔会连续两次或更多次返回相同的对象。任何想法如何解决这个问题?
let currentQuote;
let quoteGenerator = (response) => {
let newQuote = response[Math.floor(Math.random() * response.length)];
while (newQuote === currentQuote) {
newQuote = response[Math.floor(Math.random() * response.length)];
currentQuote = newQuote;
console.log(newQuote);
return newQuote;
}
};
答:
0赞
Svízel přítula
2/23/2023
#1
问题在于,您的代码只对随机值重新滚动一次,因为 while 以返回值结束。如果连续三次获得相同的值,则无论如何都会返回该值。您需要移动作业并返回循环。
let lastQuote = null;
let quoteGenerator = (response) => {
let newQuote = response[Math.floor(Math.random() * response.length)];
while (newQuote === lastQuote) {
newQuote = response[Math.floor(Math.random() * response.length)];
}
lastQuote = newQuote;
return newQuote;
};
评论
0赞
preston17
2/24/2023
我已经在我的代码中实现了这一点,但仍然会在这里和那里得到一个重复的?有没有办法避免它,还是不可避免地会重复?
下一个:在 r 中快速扩展系列。
评论