Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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 返回BMI大于30的角管_Angular_Typescript_Angular Pipe - Fatal编程技术网

Angular 返回BMI大于30的角管

Angular 返回BMI大于30的角管,angular,typescript,angular-pipe,Angular,Typescript,Angular Pipe,我想要一个管道,用于返回大于30的数组中的项目数。JSON数组如下所示: bmis = [ { "bmi": 34.32 }, { "bmi": 23.75 }, { "bmi": 19.06 }, { "bmi": 18.69 }, { "bmi": 45.40 }, { "bmi": 37.64 },

我想要一个管道,用于返回大于30的数组中的项目数。JSON数组如下所示:

bmis = [
    {
        "bmi": 34.32
    },
    {
        "bmi": 23.75
    },
    {
        "bmi": 19.06
    },
    {
        "bmi": 18.69
    },
    {
        "bmi": 45.40
    },
    {
        "bmi": 37.64
    },
    {
        "bmi": 35.54
    }
]
请注意,这些bmi值在测试结果时是假的

那么我的bmi管道如下所示:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
    name: 'bmi'
})
export class BmiPipe implements PipeTransform {
    transform(items: any[], attr: string): any {
        let counter = 0;
        for (let i = 0; i < items.length; i++) {
            if (items[i] >= 30.0) {
                counter++;
            }
        }
        return counter;
    }
}
从'@angular/core'导入{Pipe,PipeTransform};
@烟斗({
姓名:'bmi'
})
导出类bmippe实现了PipeTransform{
转换(项:任意[],属性:字符串):任意{
设计数器=0;
for(设i=0;i=30.0){
计数器++;
}
}
返回计数器;
}
}
最后,我的模板是这样的:
{{bmis | bmi}}

为了节省空间,我没有包括组件代码。此外,管道已在app.module文件中注册。 此管道不返回正确结果的4。事实上它什么也不返回


我不确定管道代码的正确性。但我就是看不到缺失的部分。任何帮助都将不胜感激

您的代码将
bmis
数组视为其值是数字,但实际上它们是对象。 因此,改变这一点:

if (items[i] >= 30.0) {
    counter++;
}
致:


项目本身不超过30,他们有一个属性,可能是。。。
if (items[i].bmi >= 30.0) {
    counter++;
}