Проблема с Angular, когда я хочу добавить элементы в массив - PullRequest
1 голос
/ 19 февраля 2020

У меня есть массив животных. Я хочу поместить в другой массив только поле «espece» каждого животного.

I pu sh все espece животных в especeAnimalPresenteTmp, а затем я удаляю дубликаты и сохраняю следующий массив в especeAnimalPresente.

У меня есть angular код:

import { Component, OnInit } from '@angular/core';
import { AnimalService } from "./animal.service";
import { Animal } from "./animal";

@Component({
  selector: 'app-animal',
  templateUrl: './animal.component.html',
  styleUrls: ['./animal.component.css']
})
export class AnimalComponent implements OnInit {

  private animaux:Array<Animal>;
  private especeAnimalPresente:Array<string>;
  private especeAnimalPresenteTmp:Array<string>;
  constructor(private animalService: AnimalService) { }

  ngOnInit() {
    this.recupAllAnimals();
  }

  recupAllAnimals(){
    this.animalService.getAllAnimaux().subscribe(data => {
      this.animaux = data;
      this.recupEspecePresent();
    })

  }

  recupEspecePresent(){
    // if (this.animaux){
      for (let animal of this.animaux) {
          this.especeAnimalPresenteTmp.push(animal.espece);
      }
      this.especeAnimalPresente = this.removeDuplicates(this.especeAnimalPresenteTmp);
    // }
  }

  removeDuplicates(array) {
    let unique = {};
    array.forEach(function(i) {
      if(!unique[i]) {
        unique[i] = true;
      }
    });
    return Object.keys(unique);
  }

}

Но у меня в консоли есть эта ошибка:

ERROR TypeError: "this.especeAnimalPresenteTmp is undefined"
    recupEspecePresent animal.component.ts:32
    recupAllAnimals animal.component.ts:24
    RxJS 11
    Angular 8

Кто-то может мне помочь, пожалуйста?

1 Ответ

2 голосов
/ 19 февраля 2020

Вы должны инициализировать массив, например, в конструкторе:

constructor(private animalService: AnimalService) {
  this.especeAnimalPresenteTmp = [];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...