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

时间:2017-02-09 06:31:42

标签: javascript if-statement math random

我正在做一些非常简单的事情来检查随机数是否超过9999,因为我试图在0 - 9999之间进行随机返回,所以我有一个for循环来做一个简单的测试来运行但不知何故即使数字不是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
    }
}

它是随机的,有时会显示8167或只是不大于9999的随机数且仍为console.log数字...

2 个答案:

答案 0 :(得分:1)

首先将结果存储在变量中。

   for (let i = 0; i < 9999; i++){
        var result = setHiddenFields();
        if(result > 9999){
            console.log(result);
        }
    }

答案 1 :(得分:1)

你做了两次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 (let i = 0; i < 9999; i++){
    var output=Math.floor((Math.random() * 10000)) + 1;
    if(output> 9999){
        console.log(output); 
    }
}