变量不正确循环

时间:2017-01-29 17:47:04

标签: javascript

我的程序应该接收未知数量的数字并计算平均值以查看其> 49或<50。问题发生在for循环中。我的总和不是添加每个标记并返回未定义的值。我不知道为什么会发生这种情况,因为实际的标记完全没有通过循环

this.myForm['controls']['orderlines']['controls'][i]['controls']['factor'].patchValue(99)

的console.log( “\ n”);

3 个答案:

答案 0 :(得分:0)

sum += marks.length[i];

这不是调用数组元素的真正方法

sum += marks.length[i];替换为sum += marks[i];,然后计算真实sum,并且您的平均值具有真实值

sum定义初始值了解,它必须是var sum = 0;

答案 1 :(得分:0)

我认为你需要总结一下。将var sum更改为var sum = 0;

答案 2 :(得分:0)

我在这里有正在运行的代码:https://jsfiddle.net/bwcpps1v/

var passingAverage = function ()
{
  var sum = 0;
  var marks = Array.from(arguments);
  var average;
  var i;

  for (i =0; i<marks.length; i++)
  {
    sum += marks[i];
  } 

  average = (sum/marks.length);

  if (average > 49)
  {
    return true;
  } else if (average < 50) {
    return false;
  }

};

console.log('passingAverage(75,42,98) returns: ' +   passingAverage(75,42,98));
console.log('passingAverage(34,93,77,89,49) returns: ' +     passingAverage(34,93,77,89,49));
console.log('passingAverage(33,61) returns: ' + passingAverage(33,61));

一些观察结果:

  • 你需要在调试方面做得更好。了解Chrome Dev工具作为调试JS的开始。逐步查看关键变量的源代码,您可以更快地发现最早的错误。
  • 花一些时间使用linter,并使用IDE或体面的文本编辑器缩进代码 - 这样可以更容易阅读和调试。