首頁  >  問答  >  主體

問題仍然是原來的,但標題重寫如下:My Javascript random function fails to generate valid responses

我正在使用 JS 和 HTML 製作一個簡單的隨機數產生器遊戲。在這個遊戲中,您可以設定隨機數的最小值和最大值。

但是,當設定變數並記錄結果時,出現了不可能的數字。例如,如果我將最小值設為 50,最大值設為 100,則會顯示 58650 、 16750 或 31450 等答案。我注意到你設定的最小數字總是出現在最後。我嘗試過更改格式並更改程式碼,但似乎沒有任何效果。

有誰知道這個問題的解決方法嗎?非常感謝您的幫助,謝謝! !

Home.html(可能不是問題):

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Random Number Generator</title>
  <link rel="stylesheet" href="style.css">
 
 
</head>
<body>
  <h1 class="Title">Random Number Generator</h1>
  <hr>
  <div class="container">
    <p> Enter 2 numbers that you want the random number to be in between</p>
    <p id="result" class="hide"></p>
    <div class="container2">
    <input id="inputmin" class="numinput" type="text">
    <p>-</p>
    <input id="inputmax" class="numinput" type="text">
   </div>
    <button id="submitbtn" class="submitbtn">Generate</button>
  </div>
  <script src="/Home.js"></script>
</body>
   </html>

Home.js:

const usermininput = document.getElementById("inputmin")
const usermaxinput = document.getElementById("inputmax")
const usersubmitBtn = document.getElementById("submitbtn")
const result = document.getElementById("result")
function random(min, max) {
  return Math.floor(Math.random() * max) + min;
}

usersubmitBtn.addEventListener("click", () =>{
  const usermin = usermininput.value

  const usermax  = usermaxinput.value
  
  console.log(random(usermin,usermax))
})

P粉682987577P粉682987577179 天前294

全部回覆(1)我來回復

  • P粉310754094

    P粉3107540942024-04-04 10:39:25

    輸入元素的 value 屬性是字串,因此您需要先將其轉換為數字(否則, 執行字串連接而不是加法)。這可以使用一元加運算子來完成,即 const usermin = usermininput.valueconst usermax = usermaxinput.value

    或者,使用 並存取 valueAsNumber 屬性。

    const usermininput = document.getElementById("inputmin")
    const usermaxinput = document.getElementById("inputmax")
    const usersubmitBtn = document.getElementById("submitbtn")
    const result = document.getElementById("result")
    function random(min, max) {
      return Math.floor(Math.random() * max) + min;
    }
    usersubmitBtn.addEventListener("click", () => {
      const usermin = usermininput.valueAsNumber;
      const usermax = usermaxinput.valueAsNumber;
      console.log(random(usermin, usermax));
    })

    Random Number Generator


    Enter 2 numbers that you want the random number to be in between

    -

    回覆
    0
  • 取消回覆