首页 > 解决方案 > 为什么这个 for 循环不记录总和?

问题描述

我试图在函数中使用这个 for 循环来获取数组的总和。但是,当我调用该函数时,我收到 NaN。

tips = [1,2,3,4,5]
function sumTip (tips){
  for (i=0; i<tips.length; i++){
    var total = total + tips[i];
    console.log(total);
  }
}
sumTip();

标签: javascriptloops

解决方案


  • 错误 1 ​​- 语法错误。它应该是tips.length而不是length.tips
  • 错误 2 - 您在调用函数时没有将参数提供给函数。它应该是sumTip(tips);
  • 错误 3 -i未在循环中声明。
  • 错误 4 - 为了使您的逻辑正常工作,total应该在 for 循环外声明并初始化为零,然后在循环内使用。

你正在做 -var total = total + tips[i];当 total 尚未定义时,表达式中的total + tips[i]计算结果为 NaN,这就是你将 Nan 作为输出的原因。

纠正上述错误后,以下代码应该可以工作 -

tips = [1,2,3,4,5]
function sumTip (tips){
  var total = 0;
  for (var i=0; i<tips.length; i++){  
    total = total + tips[i];      
    console.log(total);
  }
}
sumTip(tips);

推荐阅读