循环遍历数组并返回所有值的总和

tc0*_*c03 4 javascript arrays loops sum

我想要做的是用户输入的数字和返回的数字之和.我的逻辑如下:

  1. 用户输入字符串
  2. 字符串被拆分为数组
  3. 循环遍历数组并对所有数字求和
  4. 归还总和

这是我到目前为止的代码:

<script type='text/javascript'>

var val=document.getElementById('userInput').value;
var temp=val.split(" ");

function sum() {
    for(var i=0, MISSING THIS BIT

    document.getElementById('resultSum').innerHTML=MISSING THIS BIT;
}

</script>

<form name="input">
    <textarea name="userInput" rows=20 cols=20></textarea>
    <input name="Run" type=Button value="run" onClick="sum()">
<form name="resultSum"><input type=Text>
Run Code Online (Sandbox Code Playgroud)

我谦虚地承认这很可能是错误的,并且感谢任何人的时间和精力.


更新:我已按照建议完成,我在下面的代码中收到以下错误:

消息:'document.getElementById(...)'为null或不是对象行:16字符:1代码:0

<html>

<script type='text/javascript'>

function sum(){
    var val = document.getElementById('userInput').value;
    var temp = val.split(" ");

    var total = 0;
    var v;
    for(var i = 0; i < temp.length; i++) {
        v = parseFloat(temp[i]);
        if (!isNaN(v)) total += v;
    }

    document.getElementById('resultSum').innerHTML=total;

}

</script>

<form name="input">
    <textarea name="userInput" rows=20 cols=20></textarea>
    <input name="Run" type=Button value="run" onClick="sum()">
    <form name="resultSum"><input type=text>
<html>
Run Code Online (Sandbox Code Playgroud)

有什么建议?感谢所有人的全面 - 我已经阅读了这两个例子并立即了解了这个过程!

log*_*yth 8

您需要一个基本循环来转换和添加每个项目.

我还清理了你的HTML.你没有任何正确的结束标签.我还将所有'name'属性更改为'id'属性,以便'getElementById'能够正常工作,这是我在第一次传递时错过的.

<html>
  <head>
    <script type='text/javascript'>
      function sum(){ 
        var val = document.getElementById('userInput').value;
        var temp = val.split(" ");
        var total = 0;
        var v;
        for(var i = 0; i < temp.length; i++) {
          v = parseFloat(temp[i]);
          if (!isNaN(v)) total += v; 
        } 
        document.getElementById('resultSumValue').value = total; 
      } 
    </script>
  </head>
  <body>
    <form id="input">
      <textarea id="userInput" rows=20 cols=20></textarea> 
      <input id="Run" type=Button value="run" onClick="sum()" />
    </form>

    <form id="resultSum">
      <input id="resultSumValue" type="text" />
    </form>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这也将忽略任何'NaN'(非数字)的值.

如果您希望数字只是整数(无小数),请将parseFloat更改为parseInt.