JavaScript 不是数字

标签 javascript html

我目前正在做一个计算机科学项目,我正在尝试为积分系统创建一个计算器,交通类型提供了一个乘数,其中使用距离来计算它。起初,我将距离设置为 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/

相关文章:

javascript - div 向左浮动导致溢出

javascript - 将 validate ="required:true"添加到您的 html 中

JavaScript - 如何获取动态单选按钮名称和所选值?

javascript - Angular 4 中的 "selector"有什么用?

javascript - 访问所有局部变量

javascript - 如何根据元素高度动态调整 iframe 高度?

javascript - 如何使用jquery中的选择框将页面内容加载到div?

javascript - Mocha 。测试几个test.js

javascript - 计算数量*价格=总计|总计/价格 = 数量

html - 为什么 [routerLink] 指令选择器定义为 :not(a)[routerLink]?