Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何在10中获得表中多个列的平均值_Angular_Typescript - Fatal编程技术网

Angular 如何在10中获得表中多个列的平均值

Angular 如何在10中获得表中多个列的平均值,angular,typescript,Angular,Typescript,我有一个函数,用于计算表中所有列中json数据的总和。我想得到每列的平均值,但最终得到的是NaN或无穷大,我做错了什么 这是我的求和实现 getSum(columnNumber) { let sum = 0; const columnNumberToPropertyMap = [ "id", "teamNumber", "rural", "completed&qu

我有一个函数,用于计算表中所有列中json数据的总和。我想得到每列的平均值,但最终得到的是NaN或无穷大,我做错了什么

这是我的求和实现

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