クラスタイプ「カテゴリ」のオブザーバブルでデータを並べ替えたいだけです。 Observable <Category []>並べ替えたい。
そこで、Angular6とrxjs6にアップグレードしました。おそらく私が知っている単純なTypeScriptの問題の1つは、次のような「ソート」操作をどのように行うかです。
sort((x,y) => x.description < y.description ? -1 : 1)
新しいAngular6の内部?私は5でこれをしていました
var response = this.http.get<Category[]>(this.endpoint);
.map((result: Response) => this.alphabetize(result));
alphabetize = (result: Response) => this.Categories = result.json()
.sort((x,y) => x.description < y.description ? -1 : 1)
そして、それはうまくいきました。 HttpCLIENTModuleとHttpClientでは、Angularを使用することを望んでいます。
var data = this.http.get<Category[]>(this.endpoint);
エンドポイントの前に魔法の<(object)>を置くだけで、自動的に処理されます。クール。しかし、Source、Pipe、from、ofを使用してオブジェクトから簡単にソートする方法はわかりません。構文がわからないだけのシンプルなものだと思います。
それは:
this.http.get<Category[]>(this.endpoint).pipe(
map(results => results.sort(...))
);
または、sort
が既存の配列を変更するため、do
/tap
で副作用を提供する方が意味的に正確です。
this.http.get<Category[]>(this.endpoint).pipe(
tap(results => {
results.sort()
})
);