Я хочу отобразить некоторые числовые значения из массива объектов, сам объект содержит массив, содержащий некоторые конкретные данные.
Я попытался просмотреть значения с помощью * ngFor, но числа, которые я получаю, отображаются в виде объединения между различными значениями, а я хочу их суммировать, вот краткое объяснение того, с чем я сталкиваюсь:
класс "Заказ":
export class OrdreMission{
public idOrder:number;
// other attributes here
public concern:Concern [];
public costs:costs[];
constructor(){
this.mission = new Mission();
this.costs= [];
this.concern = [];
}
}
как я перебираю свой массив (ofc после получения соответствующих данных от моего бэкэнд-провайдера)
<table>
<thead> <!-- my headers --> </thead>
<tbody>
<tr *ngFor="let x of listOrders">
<!-- other data displayed here -->
<td>
<span *ngFor="let k of l.costs">
{{k.typeCost.code=="0808" && k!=undefined && k.idOrder==l.costs.idOrder?k.value:return}}
</span>
</td>
<td>
<span #old value="0" *ngFor="let x of l.costs">{{x.typeCost.code!="0808" && x.typeCost.code!="0606" && x!=undefined && x.idOrder==l.costs.idOrder? sum(old.value,x.value):return}}</span>
</td>
<td>
<span #old2 value="0" *ngFor="let o of l.costs">{{o.typeCost.code!="0606" && o!=undefined && o.idOrder==l.costs.idOrder?sum(old2.value,o.value):return}}</span>
</td>
<td>
<span #old3 value="0" *ngFor="let m of l.costs">{{m.typeCost.code=="0606" && m!=undefined && m.idOrder==l.costs.idOrder?sum(old3.value,m.value):return}}
</span>
</td>
<!-- other unrelated data here-->
</tr>
</tbody>
</table>
Метод sum () в моем компоненте:
sum(old:any,a:any):number{
if(!Number(old)){
return Number(a+0);
}
else if (!Number(old) && !Number(a)){
return 0;
}
return Number(a)+Number(old);
}
результаты, которые я получаю, объединяются, например:
Как видно, результат, отображаемый в последнем столбце, представляет собой объединение значений первого и второго столбцов,
тот же столбец должен включать в себя сумму двух предыдущих столбцов и другие значения, но он просто создает конкатенацию.