Как рандомизировать ответ от моего API, используя JavaScript - PullRequest
0 голосов
/ 10 июля 2019

Я изучаю JavaScript и Angular и пытаюсь случайным образом получить 3 объекта из своего ответа API. Как я могу это сделать?

Я уже распечатываю результаты, но хочу напечатать только 3 имени случайным образом.

HTML

<div *ngFor='let heroi of randomHeros'>
  {{heroi.name}}
  {{heroi.description}}
</div>

Компонентный

randomHeros;

  ngOnInit() {
    this.getHeroiAleatoriamente();
  }

  getHeroiAleatoriamente() {
    this.heroiService.getTodosHerois()
    .subscribe(
      response => {
        response = response.data.results;
      }
    );
  }

Услуги

getTodosHerois(): Observable<any> {
    return this.httpClient.get(`${API}/characters${KEYS}`)
    .pipe(
      map(
        response => response
      ),
      (error) => error
    );   }

1 Ответ

0 голосов
/ 10 июля 2019

Есть много способов сделать это. Я, вероятно, сделал бы это внутри фильтра, где бы вы ни присвоили значение randomHeros. В Lodash есть несколько полезных служебных функций, которые могут помочь вам фильтровать и управлять данными из наблюдаемой. Проверьте sampleSize

.map(todosHerois => _.sampleSize(todosHerois, 3))

В вашей Службе вы, вероятно, хотите более конкретно указать возвращаемое значение getTodosHerois:

getTodosHerois(): Observable<Heroi[]> {

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...