在 JavaScript 中生成和检查随机数
Generating and checking random numbers in JavaScript
我在使用 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 )).
那我做错了什么?任何形式的帮助都会很好。谢谢。
不确定这是否是您的解决方案,但看起来函数拼写错误。我看到了:
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();
}
我发现其中一个函数拼写正确,这可能就是您只看到一位数字的原因。尝试修复 generate1() 和 generate2() 的函数名称。
然后如评论中所述,在您的 innerHTML 后附加 += 而不是 =
您可以在每个函数中使用 += 来完成它,或者您可以进一步简化它。
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;
}
我在使用 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 )).
那我做错了什么?任何形式的帮助都会很好。谢谢。
不确定这是否是您的解决方案,但看起来函数拼写错误。我看到了:
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();
}
我发现其中一个函数拼写正确,这可能就是您只看到一位数字的原因。尝试修复 generate1() 和 generate2() 的函数名称。
然后如评论中所述,在您的 innerHTML 后附加 += 而不是 =
您可以在每个函数中使用 += 来完成它,或者您可以进一步简化它。
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;
}