Angular 如何在10中获得表中多个列的平均值
我有一个函数,用于计算表中所有列中json数据的总和。我想得到每列的平均值,但最终得到的是NaN或无穷大,我做错了什么 这是我的求和实现Angular 如何在10中获得表中多个列的平均值,angular,typescript,Angular,Typescript,我有一个函数,用于计算表中所有列中json数据的总和。我想得到每列的平均值,但最终得到的是NaN或无穷大,我做错了什么 这是我的求和实现 getSum(columnNumber) { let sum = 0; const columnNumberToPropertyMap = [ "id", "teamNumber", "rural", "completed&qu
getSum(columnNumber) {
let sum = 0;
const columnNumberToPropertyMap = [
"id",
"teamNumber",
"rural",
"completed",
"entirehouseholdabsent",
"postponed",
"refused",
"vacant",
"dwelling"
];
const property = columnNumberToPropertyMap[columnNumber];
return this.rural.reduce((acc, curr) => {
//const adder = Number(curr[property]) || 0;
const adder = isNaN(Number(curr[property])) ? 0 : Number(curr[property]);
sum = acc + adder
return sum;
}, 0).toFixed(2);
}
这将给出列中所有行的总和
我怎样才能得到每列的平均值
getSum(columnNumber) {
let sum = 0;
let average = 0;
const columnNumberToPropertyMap = [
"id",
"teamNumber",
"rural",
"completed",
"entirehouseholdabsent",
"postponed",
"refused",
"vacant",
"dwelling"
];
const property = columnNumberToPropertyMap[columnNumber];
return this.rural.reduce((acc, curr) => {
//const adder = Number(curr[property]) || 0;
const adder = isNaN(Number(curr[property])) ? 0 : Number(curr[property]);
sum = acc + adder
average = (sum)/adder;
return average ;
}, 0).toFixed(2);
}
我假设每列的下方都有NaN或无穷大
平均值=每列的总数/每列的项目数
getSum(columnNumber) {
let sum = 0;
let average = 0;
const columnNumberToPropertyMap = [
"id",
"teamNumber",
"rural",
"completed",
"entirehouseholdabsent",
"postponed",
"refused",
"vacant",
"dwelling"
];
const property = columnNumberToPropertyMap[columnNumber];
return this.rural.reduce((acc, curr) => {
//const adder = Number(curr[property]) || 0;
const adder = isNaN(Number(curr[property])) ? 0 : Number(curr[property]);
sum = acc + adder
average = (sum)/adder;
return average ;
}, 0).toFixed(2);
}
要找到平均值,只需调用
getSum
,然后将其除以行数即可。因此,实施过程如下:
getAverage(columnNumber) {
let sum = getSum(columnNumber);
let count = this.rural.length;
return sum / count;
}
或者,在一行中,
返回getSum(columnNumber)/this.rural.length代码>您是否尝试在代码中记录sum
、adder
和average
的值?这可以帮助您跟踪计算Hi@PMO1948看到我的问题了,加法器有行数,但是我如何获得行数的计数并使用它呢?获取您的行数组并调用.length
以获得总计数。如果rural
是你的数组,那么调用this.rural.length
Hi@PMO1948这是一个示例代码,你能帮助我,记录adder
?console.log('agemen.length:',agemen.length')中的行数吗
在打印getSum后添加此项,您可以看到总长度return sum/count抛出错误算术运算的左侧必须是'any'、'number'、'bigint'类型或枚举类型。
try让sum=+getSum(columnNumber)
将结果转换为数字记录结果时,它会显示什么?或者,尝试让sum:number=getSum(columnNumber)
或将getSum
的返回类型设置为number