Angular сортировать результат обслуживания - PullRequest
0 голосов
/ 29 марта 2020

Я должен отсортировать результат моей почтовой функции. есть функция post:

    findQuotation(queryParams: QueryParamsModel): Observable<QueryResultsModel> {
    return this.http.post<QueryResultsModel>(API_QUOTATIONS_URL + '/list', queryParams);}

Они возвращают мне массив объектов типа this

Я вызываю функцию сервиса в эффекте ngrx, например:

    @Effect()
loadRolesPage$ = this.actions$
    .pipe(
        ofType<QuotationsPageRequested>(QuotationActionTypes.QuotationsPageRequested),
        mergeMap(({ payload }) => {
            this.store.dispatch(this.showPageLoadingDistpatcher);
            const requestToServer = this.quotationService.findQuotation(payload.page);
            const lastQuery = of(payload.page);
            return forkJoin([requestToServer, lastQuery]);
        }),
        map(response => {
            console.log('response', response);
            const result: QueryResultsModel = response[0];
            const lastQuery: QueryParamsModel = response[1];
            this.store.dispatch(this.hidePageLoadingDistpatcher);

            return new QuotationsPageLoaded({
                quotations: result.items,
                totalCount: result.totalCount,
                page: lastQuery
            });
        }),
    );

Я бы хотел отсортировать ответ этого сервера по методу create_at (объект Date) из последнего события.

Ответы [ 2 ]

0 голосов
/ 29 марта 2020
const quotations = result.items.sort((a,b)=> new Date(b.created_at).getTime() - new Date(a.created_at).getTime());

return new QuotationsPageLoaded({
   quotations: quotations,
   totalCount: result.totalCount,
   page: lastQuery
});
0 голосов
/ 29 марта 2020

Вы пробовали это?

После подписки на функцию сервиса

result.sort((a,b)=> new Date(b.created_at).valueOf() - new Date(a.created_at).valueOf());

Запустите этот фрагмент, чтобы проверить, работает ли

let results=[{quotationNumber:"1122", created_at:"2020-03-08T01:00:00.000Z"},{quotationNumber:"1522", created_at:"2020-03-08T09:00:00.000Z"},{quotationNumber:"1222", created_at:"2020-03-01T02:00:00.000Z"},{quotationNumber:"1322", created_at:"2020-03-05T08:00:00.000Z"},{quotationNumber:"1422", created_at:"2020-02-05T08:00:00.000Z"}];
results.sort((a,b)=>new Date(b.created_at).valueOf() - new Date(a.created_at).valueOf());
console.log(results);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...