2017-02-10 6 views
4

의 배열의 요약을 계산 :각도 2 관 - 내가 (이 객체의 다른 특성이 있지만 예를 들어 가져올 수 없습니다) 저울 객체 목록이 객체

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

내가 요약 할 스마트 파이프 찾고 있어요 (다른 사람은 평균 일 것입니다) 배열의 잔액 (for 루프를 사용하지 않는 편이 좋을 것입니다.하지만 ES6 기능은 줄이긴하지만 확실하지는 않습니다.)

답변

11

아래에 자신 만의 파이프를 작성해야합니다. 그것은 당신이

합계가

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

그것을 사용하여 매개 변수로 요약 할 개체의 속성을 걸리는 당신 것

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

평균 다른 파이프

평균 파이프의 경우 합계 파이프와 비슷한 로직을 사용하십시오. 이것은 null을 0으로 취급합니다.

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

코드는 NaN을 반환합니다. –

+0

확실한가요, 저에게 효과가 있습니다 –

+0

예, 작동합니다. :) –