Javascript 为什么在我的脚本中遇到了这个if语句?JS

Javascript 为什么在我的脚本中遇到了这个if语句?JS,javascript,if-statement,math,random,Javascript,If Statement,Math,Random,我只是在做一些非常简单的事情来检查随机数是否超过9999,因为我试图在0-9999之间进行随机返回,所以我有一个for循环来执行一个简单的if测试,但不知何故,即使这个数字不是9999,它仍然进入了if语句和数字控制台 我在这里错过了什么 function setHiddenFields() { let answer = Math.floor((Math.random() * 10000) + 1); // console.log(typeof answer); retu

我只是在做一些非常简单的事情来检查随机数是否超过9999,因为我试图在0-9999之间进行随机返回,所以我有一个for循环来执行一个简单的if测试,但不知何故,即使这个数字不是9999,它仍然进入了if语句和数字控制台

我在这里错过了什么

function setHiddenFields() {
    let answer = Math.floor((Math.random() * 10000) + 1);
    // console.log(typeof answer);
    return answer;
}

for (let i = 0; i < 9999; i++){
    if(setHiddenFields() > 9999){
        console.log(setHiddenFields()); // returns 4389
    }
}
函数setHiddenFields(){
让答案=Math.floor((Math.random()*10000)+1);
//控制台日志(应答类型);
返回答案;
}
for(设i=0;i<9999;i++){
如果(setHiddenFields()>9999){
console.log(setHiddenFields());//返回4389
}
}

它是随机的,有时它显示8167或不大于9999的随机数,但仍然
控制台。记录该数字…

首先将结果存储在变量中

   for (let i = 0; i < 9999; i++){
        var result = setHiddenFields();
        if(result > 9999){
            console.log(result);
        }
    }
for(设i=0;i<9999;i++){
var result=setHiddenFields();
如果(结果>9999){
控制台日志(结果);
}
}

首先将结果存储在变量中

   for (let i = 0; i < 9999; i++){
        var result = setHiddenFields();
        if(result > 9999){
            console.log(result);
        }
    }
for(设i=0;i<9999;i++){
var result=setHiddenFields();
如果(结果>9999){
控制台日志(结果);
}
}

您制作了两次radom,一次用于if语句,另一次用于输出。 这就是代码运行的方式:

for (let i = 0; i < 9999; i++){
    if((Math.floor((Math.random() * 10000) + 1))> 9999){
        console.log(Math.floor((Math.random() * 10000) + 1)); 
    }
}
for(设i=0;i<9999;i++){
如果((数学地板((数学随机()*10000)+1))>9999){
log(Math.floor((Math.random()*10000)+1));
}
}
这就是你真正想要的:

for (let i = 0; i < 9999; i++){
    var output=Math.floor((Math.random() * 10000)) + 1;
    if(output> 9999){
        console.log(output); 
    }
}
for(设i=0;i<9999;i++){
var输出=数学地板((数学随机()*10000))+1;
如果(输出>9999){
控制台日志(输出);
}
}

您制作了两次radom,一次用于if语句,另一次用于输出。 这就是代码运行的方式:

for (let i = 0; i < 9999; i++){
    if((Math.floor((Math.random() * 10000) + 1))> 9999){
        console.log(Math.floor((Math.random() * 10000) + 1)); 
    }
}
for(设i=0;i<9999;i++){
如果((数学地板((数学随机()*10000)+1))>9999){
log(Math.floor((Math.random()*10000)+1));
}
}
这就是你真正想要的:

for (let i = 0; i < 9999; i++){
    var output=Math.floor((Math.random() * 10000)) + 1;
    if(output> 9999){
        console.log(output); 
    }
}
for(设i=0;i<9999;i++){
var输出=数学地板((数学随机()*10000))+1;
如果(输出>9999){
控制台日志(输出);
}
}

在循环中调用
setHiddenFields
2次,它们不需要返回相同的值。这就是为什么你的
if
语句不起作用的原因。如果你想在[0,9999]中使用随机数,你应该使用
Math.floor(Math.random()*10000)
,而不应该加1。你在循环中调用
setHiddenFields
两次,它们不需要返回相同的值。这就是为什么你的
if
语句不起作用的原因。如果你想在[0,9999]中使用随机数,你应该使用
Math.floor(Math.random()*10000)
,而且不应该加一个omg我怎么能错过这一点!这很尴尬,通常我会给它分配一个变量哦,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的,我的!这是令人尴尬的,通常我会给它分配一个变量哦,我的thx,thx,因为我指出了它