2017-02-10 8 views
4

の配列の要約を計算する:角度2パイプ - 私は(そこにオブジェクトの他のプロパティはなく、例えばインポートされません)残高を持つオブジェクトのリスト持つオブジェクト

[{ balance : 100 },{ balance : 200 },{ balance : null },{ balance : 300 }] 

私は合計うスマートパイプを探していますが(他のものは平均的な)バランスの配列を使用します(forループを使用しないことを好むでしょうが、減らしても方法がわからないなどのES6機能があります)

答えて

11

あなた自身のパイプを書く必要があります。それはどのようにあなたが他のパイプ

<span>{{ balances | sum:'balances' }}</span> 

平均

だろう、それを使用し

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); 
    } 
} 

合計パラメータとして

をあなたは合計するオブジェクトの属性を取ります平均管するため、単に和パイプと同様のロジックを使用します。これはあなたのコードは `NaN`を返しますnull

transform(items: any, attr: string): any { 
    let sum = items.reduce((a, b) => a + b[attr], 0); 
    return sum/items.length; 
} 
+0

0として扱います。 –

+0

あなたは、よろしいですうん、それは動作するようになりました私のため –

+0

動作します。:) –

関連する問題