在JavaScript中生成和检查随机数

时间:2015-03-24 17:59:43

标签: javascript function random numbers

我在使用JavaScript时遇到了一些问题。 到目前为止,我有这段代码:

<!DOCTYPE html>
<html>
<body>

<p>This program generates random numbers from 100 to 999.</p>

<button onclick="maingen()">Start</button> <-- Here's the FUNCTION OF FUNCTIONS..It should generate 3 digits, but only generates 1 :(

<p id="numbers"></p>

<script>
function generate1() {
    var a = Math.floor((Math.random() * 9) + 1);
    document.getElementById("numbers").innerHTML = a; <--generating the first digit (from 1 to 9)
}

function generate2() {
    var b = Math.floor((Math.random() * 9) + 0);
    document.getElementById("numbers").innerHTML = b; <--generating the second digit (from 0 to 9)
}

function generate3() {
    var c = Math.floor((Math.random() * 9) + 0);
    document.getElementById("numbers").innerHTML = c; <--generating the third digit (from 0 to 9)
}
function maingen(){
    generate1();
    generate2();
    generate3();
}


</script>

</body>
</html>

它并不像我想的那样有效。它应该生成一个从100到999的随机数。

(我生成单独的数字,因为稍后我需要检查,如果该数字中有相同的数字(例如222 ))。

那我做错了什么?任何形式的帮助都会很好。谢谢。

2 个答案:

答案 0 :(得分:1)

你可以在每个函数中使用+ =来完成它,或者你可以将它简化一点。

function generate1() {
    return Math.floor((Math.random() * 9) + 1);
}

function generate2() {
    return Math.floor((Math.random() * 9) + 0);
}

function generate3() {
    return Math.floor((Math.random() * 9) + 0);
}

function maingen() {
    var a = generate1();
    var b = generate2();
    var c = generate3();

    document.getElementById("numbers").innerHTML = a + '' + b + '' + c;
}

您也可以这样做

function generate_rand() {
    return Math.floor((Math.random() * 9));
}

function maingen() {
    var a = generate_rand() + 1;
    var b = generate_rand();
    var c = generate_rand();

    document.getElementById("numbers").innerHTML = a + '' + b + '' + c;
}

答案 1 :(得分:0)

不确定这是否是您的解决方案,但看起来功能拼写错误。我明白了:

function generuoti1() {
    var a = Math.floor((Math.random() * 9) + 1);
    document.getElementById("numbers").innerHTML = a; <--generating the first digit (from 1 to 9)
}

function generuoti2() {
    var b = Math.floor((Math.random() * 9) + 0);
    document.getElementById("numbers").innerHTML = b; <--generating the second digit (from 0 to 9)
}

但是你的主要功能是调用不同的函数:

function maingen(){
    generate1();
    generate2();
    generate3();
}

我看到其中一个功能拼写正确,所以这可能就是你只看到1位数的原因。尝试修复generate1()和generate2()的函数名称。

然后如评论中所述,使用+ =而不是=

附加innerHTML