簡體   English   中英

Angular 需要對數組的值求和

[英]Angular need to sum the values of array

我有包含數組的數據。 在數組中,有一個值是claimed_value。 我需要數組的所有 claimed_value 的總和。 我有數組的一個例子都有 claimed_value。 但我需要對數組中狀態為 settled 的所有 claimed_value 求和。

這就是我調用 API 的方式。

getClaims(){
 if(this.userFilter.company_id){
 let url = 
  'http://api.igiinsurance.com.pk:8888/insurance_IGItakaful/insurance- 
  api/get_claims.php?company_id='+this.userFilter.company_id;
 }else{
 let url = 
 'http://api.igiinsurance.com.pk:8888/insurance_IGItakaful/insurance- 
 api/get_claims.php?offset=0&limit=200';
}
  this.clientData = this.httpClient.get(url).
  subscribe(data => {
  console.log(data);
  this.data = data.records;
  var status = 'settled';
  var status2 = 'submitted';


 var countsettled = this.data.filter((obj) => obj.status === 
 status).length;
 var countunsettled = this.data.filter((obj) => obj.status === 
 status2).length;


console.log(countsettled);
this.countsettled = countsettled;
console.log(countunsettled);
this.countunsettled = countunsettled;

  });

 }

在此處輸入圖像描述

您的問題比 angular 更通用的javascript

您可以使用Array.reduce函數對數組元素求和

您可以通過先過濾來總結特定狀態

IE

const sum = this.data.filter(item => item.status === 'settled')
                     .reduce((acc, item) => acc + Number(item.claimed_value), 0);

請注意,如評論中所述,您收到的是string而不是number ,因此您必須首先轉換它(請參閱 reduce closure)) otherwise the Number() function in the ))否則 +` 運算符只會連接字符串

let finalSum = 0;
this.data.forEach((item) => {
    if(item.status === 'settled'){
        finalSum += item.claimed_value
    }
}); 
console.log("final sum is ", finalSum);

您好,這將在您的數據列表中的所有數組上循環,並將claimed_value的數量添加到finalSum 希望這對你有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM