簡體   English   中英

如何使用html和javascript制作一種計算器?

[英]How do i make a sort of calculator using html and javascript?

我是初學程序員,我想做這項工作,但事實並非如此。 你能幫我解釋一下是什么問題嗎? 例如,如果我輸入20歲以下,我希望它能告訴我走多長時間走到我選擇的任何星球。 其中大部分是弄清楚如何讓代碼存儲用戶選擇的任何選項,然后將其應用於年齡並使用數據來計算它。 謝謝!

<legend>basic info</legend>
    <p> What is your destination?
        <select onchange = "selectDestination(this.value)">
        <option value="mercury">Mercury</option>
        <option value="venus">Venus</option>
        <option value="mars">Mars</option>
        <option value="jupiter">Jupiter</option>
        <option value="saturn">Saturn</option>
        <option value="uranus">Uranus</option>
        <option value="neptune">Neptune</option>
        <option value="pluto">Pluto</option>
        </select>
        <script type="text/javascript">
          var planets = new Array();
         planets['mercury'] = 48000000;
         planets['venus']=25000000
         planets['mars']=25000000
         planets['jupiter']=33900000
         planets['saturn']=365000000
         planets['uranus']=1200000000
         planets['neptune']=2600000000
         planets['pluto']=2800000000

         function selectDestination(selectedValue) {
         window.alert(selectedValue + " distance=" + planets[selectedValue]);
        }          
        </script>
    </p>
    <p>
    <label>how old are you?</label> 
     <form id="form" onsubmit="return false;">
      <input type="number" id="userInput">
      <input type="submit"    onclick="age()">
     </form>
    <script type="text/javascript">
      function age()
      {
        var input = document.getElementById("userInput");
        alert(input);
      }
      if(age<20);
      {
      alert("YOU ARE UNDER 20");
      var runSpeed=6.3;
      var walkSpeed=2.1
      var water = 1.5;
      var calories = 2500;
      var runTime = planets[selectedValue]/runSpeed;
      var runDays = runTime/24
      document.write("it will take "+runTime+" hours and "+runDays+" days to make it to"+selectedValue);
      }
      if(21<age>45) {
      alert("YOU ARE AT YOUR PHYSICAL PEAK");
      var runSpeed=8.3;
      var walkSpeed=3.1;
      var water = 2;
      var calories = 3000;
      var runTime = planets[selectedValue]/runSpeed;
      var runDays = runTime/24;
      document.write("it will take "+runTime"hours and"+runDays+"days to make it to"+selectedValue);
      }
      if(age<45){
        alert("YOU ARE PROBABLY TOO OLD TO TAKE THIS TRIP");
        var runSpeed=5.3;
        var walkSpeed=1.1;
        var water=1.5;
        var calories=3000;
        var runTime = planets[selectedValue]/runSpeed;
        var rundays = planets[selectedValue]/24;
        document.write("it will take "+runTime"hours and"+runDays+"days to make it to"+selectedValue);
      }
    </script>
    </p>

這里的代碼不起作用。

      var planets = new Array();
     planets['mercury'] = 48000000;
     planets['venus']=25000000
     planets['mars']=25000000
     planets['jupiter']=33900000
     planets['saturn']=365000000
     planets['uranus']=1200000000
     planets['neptune']=2600000000
     planets['pluto']=2800000000

您要聲明的是一個數組,您想要推送的是對象。

理想情況下,你想要的行星看起來是var planets = [ {planet: 'mercury', distance: 48000000}, {planet: 'venus', distance: 25000000 }, ... ]

現在,沒有任何事情發生,因為你的語法正在尋找一個帶有mercuryvenus鍵而沒有找到任何東西的物體。

你應該做的下一件事是能夠console.log()無論用戶輸入什么年齡。 確保你的函數age()接受一個參數,所以它可能看起來更像age(val)

一旦你是console.log()記錄用戶的年齡輸入,你應該非常接近。 在此之后您需要做的就是抓住用戶選擇的行星,並且您可以通過循環planets陣列並將用戶選擇的內容與陣列中的內容進行匹配來實現。 planets.filter(planet => planet.indexOf(planetUserSelected) !== -1)會給你回找你正在尋找的對象,你可以從那里得到console.log()那個值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM