【问题标题】:JavaScript Adding Numbers through IterationJavaScript 通过迭代添加数字
【发布时间】:2016-09-03 05:22:09
【问题描述】:

我正在尝试查找数组中所有元素的总和,但它不起作用。

var nums = [10, 20, 30, 40];
var num;

for (var i = 0; i <= nums.length; i++) {
  num += parseInt(nums[i]);
}
alert(num);

【问题讨论】:

    标签: javascript arrays for-loop iteration addition


    【解决方案1】:

    由于nums.length4,因此索引从0 运行到3i &lt;= nums.length 应该是 i &lt; nums.length。最后一次迭代是在数组外访问,所以它添加了undefined,结果是NaN

    您还需要将num 初始化为0

    当数组包含整数时,无需调用parseInt()

    var nums = [10, 20, 30, 40];
    var num = 0;
    
    for (var i = 0; i < nums.length; i++) {
      num += nums[i];
    }
    alert(num);

    【讨论】:

      【解决方案2】:

      使用Array.reduce函数计算总和

      var nums = [10,20,30,40]; 
      var num=nums.reduce(function(previousValue, currentValue, currentIndex, array) {
        return previousValue + currentValue;
      });
       alert(num);
      

      JSFIDDLE

      【讨论】:

        【解决方案3】:

        这里的第一个问题,您 num 未定义,第二个问题是数组索引为 0,因此循环中的 i =&lt; nums.length 将在最后一次迭代中返回未定义

        var nums = [10, 20, 30, 40];
        var num =  0;
        
        for (var i = 0; i < nums.length; i++) {
          num += parseInt(nums[i]);
        }
        alert(num);

        【讨论】:

        • 谢谢麦原
        猜你喜欢
        • 1970-01-01
        • 2022-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-27
        • 2020-03-13
        • 2014-02-13
        • 1970-01-01
        相关资源
        最近更新 更多