オブジェクトの名前の値でフィルター処理するパイプ フィルターを適用した後、json オブジェクトの金額値の合計を表示しようとしています。これまでのところ、.json オブジェクトの名前の値で数値をフィルター処理できますが、パイプで .reduce() メソッドを使用して合計を見つけて表示することはできません。
パイプで名前の値によってフィルター処理された合計金額の合計を表示するにはどうすればよいですか?
最終的には、ユーザーに都市を検索して、同じ都市名で識別可能な各オブジェクトの数値の合計を表示してもらいたいと考えています。
(私はこのチュートリアルを構築しています https://www.youtube.com/watch?v=sVTNaYBVP88&list=PL4cUxeGkcC9jqhk5RvBiEwHMKSUXPyng0&index=22 )
json サンプル
[
{
"name": "Bacon",
"belt": "purple",
"amount": 23
},
{
"name": "Alex",
"belt": "purple",
"amount": 24
},
{
"name": "Alex",
"belt": "black",
"amount": 232
}
]
コンポーネント HTML
<li *ngFor="let ninja of ninjas | filter:term | sum" >
<p>{{ninja.amount}}</p>
</li>
合計パイプ
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'sum'
})
export class SumPipe implements PipeTransform {
transform(ninjas: any, term: any): any {
return ninjas.reduce(function(a,b){return a + b});
}
}