我有具有余额的对象列表(对象中还有其他属性,但未导入)
[{ balance : 100 },{ balance : 200 },{ balance : null },{ balance : 300 }]
我正在寻找能够在数组中求和(其他平均值)余额的智能管道(不希望使用for循环 – 但有些ES6功能如减少但不确定如何)
你需要自己编写管道,下面应该给你你想要的东西.它将您想要求和的对象的属性作为参数
和
import { Pipe,PipeTransform } from '@angular/core'; @Pipe({ name: 'sum' }) export class SumPipe implements PipeTransform { transform(items: any[],attr: string): any { return items.reduce((a,b) => a + b[attr],0); } }
使用它你如何使用任何其他管道
<span>{{ balances | sum:'balances' }}</span>
平均
对于平均管道,只需使用与总和管道类似的逻辑.这将null视为0.
transform(items: any,attr: string): any { let sum = items.reduce((a,0); return sum / items.length; }