#angular #api #date #sorting #filter
#угловой #API #Дата #сортировка #Фильтр
Вопрос:
Я получаю обзоры фильмов из NYT api и хочу отсортировать результат по дате в порядке убывания, как я могу добавить этот фильтр ?
Обслуживание
import { HttpClient, HttpParams } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable, throwError } from 'rxjs'; import { catchError, retry } from 'rxjs/operators'; import { GlobalConstants } from '../common/global-constants'; import {map} from 'rxjs/operators'; @Injectable() export class ReviewsService { apiUrl = GlobalConstants.apiURL; constructor(private http: HttpClient) { } getReviews(): Observablelt;anygt; { return this.http.get(this.apiUrl).pipe(map((response:any)=gt;response.results)) } }
компонент
import { Component, OnInit } from '@angular/core'; import { ReviewsService } from 'src/app/services/reviews.service'; @Component({ selector: 'app-reviews', templateUrl: './reviews.component.html', styleUrls: ['./reviews.component.css'] }) export class ReviewsComponent implements OnInit { data: any; constructor(private reviewsService: ReviewsService) { } ngOnInit() { this.getReviews(); } getReviews() { this.reviewsService.getReviews().subscribe({ next: (data: any) =gt; { this.data = data; console.log(typeof this.data); console.log(this.data); }, error: (err: any) =gt; { console.log(err); }, complete: () =gt; { console.log('complete'); } }); } }
Ответ №1:
к вашим услугам:
getReviews(): Observablelt;anygt; { return this.http.get(this.apiUrl).pipe(map((response: any) =gt; response.results.sort((dataA, dataB) =gt; { return (( new Date(dataA['publication_date'])) - ( new Date(dataB['publication_date']))); }))) }
Комментарии:
1. в этом есть смысл, спасибо Белларей