Получить данные из массива объектов - PullRequest
0 голосов
/ 05 августа 2020

У меня проблема с получением данных из массива объектов .. Мой массив данных вроде этого ..

введите описание изображения здесь

Я просто хочу получить список menuCode.

Компонент

ngOnInit() {
    this.commonService.menuList$.subscribe(data => {
      this.menuCode =  data;
      console.log(this.menuCode)
     })
  }

если я добавлю такой код this.menuCode = data['menuCode'] Я получил эту ошибку TypeError: Cannot read property 'menuCode' of null . Что мне делать, чтобы получить только список menuCode.

Изменить

Сервис

_getMenu() {
    this.loading.present();
    this.auth.getMenu()
    .pipe(take(1))
    .subscribe(
      res => {
        this.menuList$.next(res['menuList']);
        this.loading.dismiss();
      },
      error => {
        this.menuList$.next([]);
        this.loading.dismiss();
      }
    )
  }

1 Ответ

2 голосов
/ 06 августа 2020

Ваш объект res - это массив объектов. Таким образом, выполнение res['menuCode'] вернет null, потому что его нет в массиве. Поэтому, если вы хотите получить список кодов меню, вы можете использовать функцию map()

_getMenu() {
    this.loading.present();
    this.auth.getMenu()
    .pipe(take(1))
    .subscribe(
      res => {
        this.menuList$.next(res.map(r => r.menuCode)); // here
        this.loading.dismiss();
      },
      error => {
        this.menuList$.next([]);
        this.loading.dismiss();
      }
    )
  }

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