【问题标题】: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。只需存储旧值,然后对新值求和。同样,如果我误解了某些内容,请告诉我,或者如果我的答案解决了您的问题,请将其标记为正确;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-20
        • 2018-06-23
        相关资源
        最近更新 更多