gpt4 book ai didi

javascript - 当我将随机数生成器/猜测器放入函数中时,我的 JavaScript 代码崩溃了。为什么会崩溃?

转载 作者:行者123 更新时间:2023-12-02 23:03:33 24 4
gpt4 key购买 nike

我已经构建了一个用于猜测数字的随机数生成器。我限制了这个数字猜测器不询问相同的数字两次,这在函数之外起作用。一旦我将数字生成器/猜测器放入函数中,窗口每隔几次尝试就会崩溃。我相信这与无限循环中生成的数字有关。谁能看出问题出在哪里吗?

编辑:适合那些也喜欢查看 HTML 的人。我在 JS 之前有两个简单的输入:

<body>

<p>Think of a number!</p>

<select name="fingers" id="mynumber">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>

<button id="startguess">Start guessing my number!</button>

以下是全局变量:

        var guessed = [""];

var guess = "";

这是函数:

        function doaguess(correctanswer) {

guess = Math.floor(Math.random() * 6);

var n = "";

n = guessed.includes(guess);

if (n == true) {

guess = Math.floor(Math.random() * 6);

} else {

if (guess == correctanswer) {

return (true);

} else {

return (false);

}

}

}

脚本的其余部分是这样的:

        document.getElementById("startguess").onclick = function() {

var mynumber = document.getElementById("mynumber").value;

var gotit = false;

var numberofguesses = 1;

while (gotit == false) {

if (doaguess(mynumber) == true) {

gotit = true;

alert("Got it! It was a " + mynumber + ". It took me " + numberofguesses + " guesses.");

} else {

numberofguesses++;
guessed.push(guess);

}

}

}

一切正常,直到我将生成器移至函数 doaguess() 中。我尝试将变量从本地移动到全局以更改范围,这使代码可以工作,但现在崩溃了。如有任何帮助,我们将不胜感激。

编辑:适合那些也喜欢查看 HTML 的人。我在 JS 之前有两个简单的输入:

最佳答案

如果您猜测 (n == true) 之后的数字,您不会返回任何内容,并且猜测可能是重复的,那么应该进入一个循环来搜索新的猜测。在这种情况下,当您猜测数字时,结果不正确,正确答案将添加到 guessed 数组中,从而导致无限循环。

修复:

n = guessed.includes(guess);


while (n == true) {

guess = Math.floor(Math.random() * 6);
n = guessed.includes(guess);
}

if (guess == correctanswer) {

return (true);

} else {

return (false);
}

关于javascript - 当我将随机数生成器/猜测器放入函数中时,我的 JavaScript 代码崩溃了。为什么会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57694647/

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