2016-08-29 8 views
3

TypeScriptの新機能 - 角度2.リストから合計を計算する方法 - Typescript - Angular2

リストから合計を計算する方法を知りたいと思います。

私はすでに必要な項目を選択し、エラーで合計を取得する:

TSエラータイプ 'ボイドが' 'Creanceを[]' 型に代入ないが、

creancesOfSelectedRemise: Creance[]; 

onSelectRemise(remise: Remise, event: any) { 
...//... 
this.creancesOfSelectedRemise = this.creances 
    .filter(c => c.id_remettant === remise.id_remettant) 
    .forEach(c => this.totalCreances += c.creance_montant); 
} 

を'forEach'が正しく使用されていないようです。

フィルタとforEachを同時に追加することはできますか?代わりにforEachあなたが総括したい番号を返すためにmapを使用し、それらを合計するreduceを使用する必要がありますを使用しての

おかげ ビー

答えて

9

onSelectRemise(remise: Remise, event: any) { 
    ... 
    this.creancesOfSelectedRemise = this.creances 
     .filter(c => c.id_remettant === remise.id_remettant) 
     .map(c => c.creance_montant) 
     .reduce((sum, current) => sum + current); 
} 

あなたは、のサイクルを削除することができますマッピング内のアイテムを除外して繰り返します。

onSelectRemise(remise: Remise, event: any) { 
    ... 
    this.creancesOfSelectedRemise = this.creances 
     .map(c => c.id_remettant === remise.id_remettant ? c.creance_montant : 0) 
     .reduce((sum, current) => sum + current); 
} 
+0

わかりました。それは動作します、ありがとう! – Bea

+0

私はこれが古いと知っていますが、ただthis.creancesOfSelectedRemise = this.creances.reduce((sum、c)=> sum + c.creance_montant、0); ' – Jocie

+0

@Jocie OPは、(remise.id_remettantに基づいて)リストからいくつかの要素を除外したいと考えました。あなたのソリューションはそれを考慮していないようです。 –

関連する問題