2017-06-09 13 views
0

私は年ごとの結果リストを持っています。角度2で計算する

<tr *ngFor="let d of histroricalData; let i = index"> 
    <td> 
    {{d.YearCalculation}} 
    </td> 
    <td> 
    {{d.OverallResult}}% 
    </td> 
    <td> 
    <!--subtract previous year from current --> 
    </td> 
</tr> 

ループの現在のものからpreviusの結果を差し引くにはどうすればよいですか?

これは、あなたはいつも、

indexの助けを借りることができますループ

for (let i = 0; i < this.histroricalData.length; i++) { 
     if (this.histroricalData[i - 1] != null) { 
     let calc = this.histroricalData[i].OverallResult - this.histroricalData[i - 1].OverallResult 
     console.log(Math.round(calc * 100)/100); 
     } 
    } 

答えて

1

ために定期的に使用して、あなたは

{{histroricalData[i - 1].OverallResult - histroricalData[i].OverallResult}}% 

や、

を使用することができ、私が達成したいものです
{{(histroricalData[i - 1]['OverallResult']) - (histroricalData[i]['OverallResult'])}}% 

コードは

<tr *ngFor="let d of histroricalData; let i = index"> 
    <td> 
    {{d.YearCalculation}} 
    </td> 
    <td> 
    {{histroricalData[i - 1].OverallResult - histroricalData[i].OverallResult}}% 
    </td> 
    <td> 
    <!--subtract previous year from current --> 
    </td> 
</tr> 
2

となります。あなたは[0,1,2,3,4,5,6]のようなindexArray何かと呼ばれる配列を初期化し、それはあなたのために働く

<tr *ngFor="let d of histroricalData; let i of indexArray"> 
     <td> 
     {{d.YearCalculation}} 
     </td> 
     <td> 
     {{d.OverallResult}}% 
     </td> 
     <td *ngIf="histroricalData[i - 1] != null"> 
     {{histroricalData[i].OverallResult - histroricalData[i - 1].OverallResult}} 
     </td> 
</tr> 
1

を次のようにループのためにそれを使用することができます。 テンプレート:

<tr *ngFor="let d of histroricalData; let i = index"> 
    <td> 
    {{d.YearCalculation}} 
    </td> 
    <td> 
    {{d.OverallResult}}% 
    </td> 
    <td *ngIf="i > 0"> 
    {{getCalculatedValue(histroricalData[i].overallResult - histroricalData[i-1].overallResult)}} 
    </td> 
</tr> 

TSファイル:

getCalculatedValue(value){ 
    return Math.round(value * 100)/100; 
    } 
+0

クール、おかげで、その:-)のためのパイプを作成 – Arianule

関連する問題