【问题标题】:JAVASCRIPT: Getting values inside an arrayJAVASCRIPT:获取数组中的值
【发布时间】:2015-05-19 10:57:32
【问题描述】:

我在调用我在数字框中输入的值时遇到问题(我不知道我应该怎么称呼它......如果有一个文本框,应该有一个数字框。哈哈)。如果我输入“123456”,sum 的值应该是“21”,但结果是 sum 的值是“0123456”。

<input type="number" name="user" id="input" maxlength="6" size="6" required>
<input type="button" onClick="Calculate()" value="Calculate">
<script type="text/javascript">
        function Calculate(){
            var user = [];
                user=document.getElementById("input").value;
            if(user.length==6){
                var sum=0;
                    for (i=0;i<user.length;i++){
                    sum=sum+user[i];
                    }
                  var ave=sum/6;
                    window.alert("Sum is: "+sum);
                    window.alert("Average is: "+ave);
            }
            else
                window.alert("Please input EXACTLY 6 numbers.");
        }
</script>

【问题讨论】:

  • 您正在循环输入123456 的每个数字,sum 的默认值为 0,因此在第一个循环执行中,将在第一个数组前面放置一个 0,将其更改为 @987654325 @
  • 的确如此,但他的问题不是前面有一个0,而是他把一个字符串串联在一起而不是相加。
  • @AR7 正确,这不是唯一的问题,但这是此函数的第一个问题,因为您已经提交了将字符串转换为整数的答案,所以我没有看到太多意义在说同样的话。我也很困惑为什么 123456 除以 6 = 21..... 123456/6=20576。

标签: javascript arrays input types numbers


【解决方案1】:

您正在检索一个字符串,将其拆分为多个部分并将其重新组合在一起。您需要先将字符串转换为整数。要找出多种方法来做到这一点,这里写了一个很好的答案:

How do I convert a string into an integer in JavaScript?

sum = sum + parseInt(user[i],10);

应该工作

【讨论】:

  • 很高兴听到这个消息。 Javascript 在这方面很奇怪,因为它可以让你做很多奇怪的事情。
猜你喜欢
  • 1970-01-01
  • 2021-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多