javascript - 打开时有效,但重新加载时崩溃

标签 javascript

因此,我尝试创建 1 到 3 之间的三个值,每次页面加载时这些值都会有所不同。当我第一次打开页面时,它工作得很好,但是每当我尝试重新加载或提交表单时,页面就会卡住并且卡住加载。非常感谢任何帮助!

function uniqueAnswerId(){
    var rand = (Math.random() * 3.4);
    while (Math.round(rand) == 0) {
        var rand = (Math.random() * 3.4);
    }
    return (Math.round(rand));
}
var answerId1 = uniqueAnswerId();

function uniqueAnswerId2(){
    var rand2 = (Math.random() * 3.4);
    while (answerId1 == Math.round(rand2) || Math.round(rand2) == 0) {
        var rand2 = (Math.random() * 3.4);
    }
    return (Math.round(rand2));
}

var answerId2 = uniqueAnswerId2();

function uniqueAnswerId3(){
    var rand3 = (Math.random() * 3.4);
    while (answerId1 == Math.round(rand3) || answerId2 == Math.round(rand3)){
        while (Math.round(rand3) == 0){
            var rand3 = (Math.random() * 3.4);
        }
    }
    return (Math.round(rand3));
}

var answerId3 = uniqueAnswerId3();

console.log("AnswerIds: " + (answerId1) + ", " + (answerId2) + ", " + (answerId3))

最佳答案

你的第三个 while 循环应该是这样的,还有另一个“||”在你的条件下,而不是一个全新的 while 循环。

function uniqueAnswerId3(answerId1, answerId2){
    var rand3 = (Math.random() * 3.4);
    while (answerId1 === Math.round(rand3) || answerId2 === Math.round(rand3) || Math.round(rand3)===0){
             rand3 = (Math.random() * 3.4);
    }
    return (Math.round(rand3));
}

关于javascript - 打开时有效,但重新加载时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34337776/

相关文章:

javascript - 编译错误,需要 Accordion Controller

javascript - 如何限制谷歌地图标记反弹的次数?

javascript - 如何使用 Angular 在我的组件中使用 datePipe?

javascript - 如何使用关键字搜索抓取 youtube 视频链接

javascript - 使用 .remove() 时防止 jQuery 可拖动元素离开父 DIV?

javascript - 在 React 15 中嵌套 2 个内联 if 的最佳方法是什么?

javascript - 未处理的异常类型 ScriptException

javascript - Jquery比较来自不同元素的两个字符串

javascript - 如何将 'this' 范围转发到 javascript 中的函数调用

javascript - 每次按键时 OnKeyDown 监听器调用 6 次