gpt4 book ai didi

javascript - 用随机数填充 JavaScript 数组会导致浏览器崩溃

转载 作者:行者123 更新时间:2023-12-03 08:57:06 25 4
gpt4 key购买 nike

我有两个 JavaScript 函数,旨在模拟 D&D 类型游戏中的掷骰子。

第一个函数 getRandom() 接受一个小数和一个大数,并返回两个数之间的随机整数。

function getRandom(low, high) {
return Math.floor(Math.random() * (high - low + 1)) + low;
}

第二个函数 dropLow() 应该掷骰子四次,丢掉得分最低的骰子,然后将剩余的三个骰子相加。只要总数大于9,就会返回总数。

function dropLow() {
var rolls = [],
lowest,
total;
do {
total = 0;
for (x = 0; x < 4; x++) {
rolls.push(getRandom(1,6));
total += rolls[x];
}
lowest = rolls[0];
for (x = 1; x < 4; x++) {
if (rolls[x] < lowest) {
lowest = rolls[x];
}
}
total -= lowest;
} while (total < 10);
rolls.length = 0;
return total;
}

如果我只调用 dropLow() 一次,一切都会很好。但我调用它的次数越多,我的浏览器(Chrome)就越频繁地崩溃并崩溃(具体错误是:“噢!显示此网页时出了问题。要继续,请重新加载或转到另一个页面。”)。我认为可能是浏览器中的某些设置导致了问题,所以我在平板电脑上拉出页面,但它仍然卡住/崩溃。拉起 Firefox 并出现同样的问题。

如果我不断地在原始数组的基础上进行构建,我已经考虑过销毁该数组,或者至少清除其内容,但情况似乎并非如此。

谁能帮我弄清楚这是如何发生的以及为什么会发生?

最佳答案

rolls = [] 移至 do 循环内。

由于您没有重置数组,因此您正在使用旧值。如果 do..while 循环运行两次,则它始终使用相同的低值,从而导致崩溃。

关于javascript - 用随机数填充 JavaScript 数组会导致浏览器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32447224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com