我目前正在做一个计算机科学项目,我正在尝试为积分系统创建一个计算器,交通类型提供了一个乘数,其中使用距离来计算它。起初,我将距离设置为 10,但是当我尝试将其更改为用户输入距离的位置时,计算出的数字不被视为数字。我的代码如下:
var Companies = [
[1, "Barclays", 50, 100],
[2, "Google", 20, 40],
[3, "Microsoft", 80, 160]
];
var Transport = [
["Car", 1.2],
["Bike", 1.5],
["Walk", 1.6],
["Public Transport", 1.3],
["Car Share", 1.4]
];
var Distance = 10;
var Carbo = 0;
function Carbo_Calculator() {
var Transport_Chosen = document.getElementById("Transport_Chosen").value;
var Company_Chosen = document.getElementById("Company_Chosen").value;
for (i = 0; i < Transport.length; i++) {
if (Transport_Chosen == Transport[i][0]) {
Carbo = Distance * Transport[i][1];
for (j = 0; j < Companies.length; j++) {
if (Company_Chosen == Companies[j][1]) {
Companies[j][3] = Companies[j][3] + Carbo;
console.log(Companies);
}
}
alert(Carbo);
}
}
}
<h1>Transport:</h1>
<select id="Transport_Chosen">
<option>Transport...</option>
<option value="Car"> Car </option>
<option value="Bike"> Bike </option>
<option value="Walk"> Walk </option>
<option value="Public Transport"> Public Transport </option>
<option value="Car Share"> Car Share </option>
</select>
<h1>Companies:</h1>
<select id="Company_Chosen">
<option>Companies...</option>
<option value="Barclays"> Barclays </option>
<option value="Google"> Google </option>
<option value="Microsoft"> Microsoft </option>
</select>
<h1>Distance</h1>
<input type="number" id="Distance" placeholder="Distance">
<button onclick="Carbo_Calculator()"> Go! </button>
即使距离设置为 10,当我将其更改为 Distance = document.getElementById("Distance).value;
然后尝试运行它时,用户输入它时,即使输入的数据类型是数字,警报也显示不是数字。
最佳答案
您需要将数据解析为数字,因为 .value
属性返回一个字符串,因此当您输入 10 时,input.value
将返回一个字符串 “10”
。
您可以使用Number()
或parseInt()
,例如:
var Transport_Chosen = Number( document.getElementById("Transport_Chosen").value );
var Company_Chosen = Number( document.getElementById("Company_Chosen").value );
//Or
var Transport_Chosen = parseInt( document.getElementById("Transport_Chosen").value );
var Company_Chosen = parseInt( document.getElementById("Company_Chosen").value );
关于JavaScript 不是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52220391/