Angular 返回BMI大于30的角管
我想要一个管道,用于返回大于30的数组中的项目数。JSON数组如下所示: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 },
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++;
}