【问题标题】:Adding generated random numbers?添加生成的随机数?
【发布时间】:2020-05-22 23:26:30
【问题描述】:
我除了我的代码之外是生成一个随机数,然后它会生成另一个随机数,然后将它添加到旧生成的随机数等等。简单地说,每次我点击按钮时,它都会生成一个随机数并将其添加到旧生成的随机数中。
function play() {
let p1 = document.getElementById("demo1");
let p2 = document.getElementById("demo2");
rnd = Math.floor(Math.random() * 10);
for (i = 0; i <= rnd; i++) {
var d = rnd + rnd;
p1.innerHTML = d;
}
}
这是我到达的最远点,它只会使随机生成的数字翻倍,所以它对我的目标一点用处都没有。
感谢您的帮助。
【问题讨论】:
标签:
javascript
loops
web
random
【解决方案1】:
这是基本的:
function addRandom(){
var result = document.getElementById("result");
result.innerHTML = Number(result.innerHTML) + rando(1, 10);
}
<script src="https://randojs.com/1.0.0.js"></script>
<div id="result"></div>
<button onclick="addRandom();">Add random</button>
它使用randojs 来简化随机性,因此如果您想使用此代码,请不要忘记使用script 标记来获取它。我不知道为什么,但我也做了一个风格化的版本。如果你想玩得开心:
function addRandom(){
var inputs = document.getElementsByTagName("input"), result = document.getElementById("result");
var from = Number(inputs[0].value);
var to = Number(inputs[1].value);
result.innerHTML = Number(result.innerHTML) + rando(from, to);
}
body{
background:#333;
}
#card{
width:400px;
max-width:90%;
margin:25px auto;
background:#fff;
color:#aaa;
font-size:16px;
font-family:Arial, "Helvetica Neue", Helvetica, sans-serif;
border-radius:3px;
overflow:hidden;
}
#result{
background:#cc66ff;
color:#fff;
text-align:center;
padding:20px;
font-size:100px;
margin-bottom:20px;
}
#inputs{
padding:20px;
}
input{
width:100%;
padding:20px;
border:1px solid #ddd;
box-sizing:border-box;
font-size:20px;
margin-bottom:20px;
border-radius:3px;
color:#333;
}
button{
width:100%;
padding:20px;
font-size:20px;
border:2px solid #cc66ff;
color:#cc66ff;
cursor:pointer;
background:transparent;
border-radius:3px;
}
button:hover{
background:rgba(204, 102, 255, .1);
}
<script src="https://randojs.com/1.0.0.js"></script>
<div id="card">
<div id="result">0</div>
<div id="inputs">
From:
<input type="number" value="1"/>
To:
<input type="number" value="10"/>
<button onclick="addRandom();">Add</button>
</div>
</div>
【解决方案2】:
请检查这是否适合您的需求,以及我是否正确理解您:
function play() {
let p1 = document.getElementById("demo1");
let p2 = document.getElementById("demo2");
rnd = Math.floor(Math.random() * 10);
alert("New value: " + rnd);
oldValue = parseInt(p1.innerHTML);
if (!oldValue){
oldValue = 0;
}
var d = oldValue + rnd;
p1.innerHTML = d;
}
基本上,不需要 for。只需存储旧值,然后对新值求和。同样,如果我误解了某些内容,请告诉我,或者如果我的答案解决了您的问题,请将其标记为正确;)