我的程序应该接收未知数量的数字并计算平均值以查看其> 49或<50。问题发生在for循环中。我的总和不是添加每个标记并返回未定义的值。我不知道为什么会发生这种情况,因为实际的标记完全没有通过循环
this.myForm['controls']['orderlines']['controls'][i]['controls']['factor'].patchValue(99)
的console.log( “\ n”);
答案 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));
一些观察结果: