如何制作一种使用html和javascript的计算器?
问题描述:
我是一名初学者程序员,我想完成这项工作,但事实并非如此。你能帮我解释一下有什么问题吗?例如,如果我输入20以下,我希望它告诉我要花多长时间才能走到我选择的任何行星。其中大部分是弄清楚如何让代码存储用户选择的任何选项,然后将其应用于年龄并使用数据来计算它。谢谢!如何制作一种使用html和javascript的计算器?
<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 }, ... ]
现在,什么也没发生,因为你的语法正在寻找与mercury
或venus
一个键的对象,并没有找到任何东西。
你应该做的下一件事是能够console.log()
无论用户输入的年龄。确保你的功能age()
接受参数,所以它看起来更像age(val)
一旦你console.log()
记录用户输入的年龄,你应该非常接近。所有你需要做的是抓住用户选择的星球,你可以通过循环访问你的planets
阵列,并匹配用户选择的数组和内容。像planets.filter(planet => planet.indexOf(planetUserSelected) !== -1)
这样的东西可以让你找回你正在寻找的物品,并且你可以从那里获得价值并且从console.log()
。
您的代码有许多问题。首先,你缺少一个关闭'''括号;调试你的代码来找到它。其次,你的年龄计算'if(21 45)'将不起作用 - 你需要将它分成两个不同的条件,或者写'if(age> 21 && age