使用Angular 4,我需要显示一些数字的平均值。我的组件基本上是这样的:
@Component({
selector: 'app-home',
templateUrl: './home.component.html'
})
export class HomeComponent {
students:string[];
constructor(private studentsService: StudentsService) {}
ngOnInit() {
this.studentsService.getStudents().subscribe(students => {
...
})
function doAvg (arr) {
var i,
len=arr.length,
average=0,
obj={};
for (i=0;i<len;i++) {
average += arr[i];
}
return (average/arr.length);
}
}
}
我的模板有这个标记(GPARecord是一个浮点数组):
<tr *ngFor="let student of students">
...
<td>{{ doAvg(student.GPARecord) }}</td>
</tr>
但我在控制台中收到此错误:
ERROR TypeError: _co.doAvg is not a function
帮助!谢谢!
答案 0 :(得分:3)
(i)您不需要使用关键字 function
,也可以使用 let
,而不是 var
强>
(ii)移出 ngOnInit()
doAvg (arr) {
let i,
len=arr.length,
average=0,
obj={};
for (i=0;i<len;i++) {
average += arr[i];
}
return (average/arr.length);
}
答案 1 :(得分:3)
您已在ngOnInit()
中定义了自己的功能。并删除function
字。移出像
export class HomeComponent {
students:string[];
constructor(private studentsService: StudentsService) {}
ngOnInit() {
this.studentsService.getStudents().subscribe(students => {
...
});
}
doAvg (arr) : number {
var i, len=arr.length, average=0,
for (i=0;i<len;i++) {
average += arr[i];
}
return (average/arr.length);
}
}
您还可以从函数中删除obj
变量,因为它未被使用并使您的函数返回类型number
。