开发者问题收集

访问 Typescript 中的嵌套对象数组时出错

2021-06-16
174

我正在尝试使用来自 webapi 的 json。调试时,数据按照下图正确传输:

在此处输入图像描述

令人惊讶的是,当我尝试循环遍历 report.subreport 数组中的对象时,我被告知它未定义:

getReports() {
    console.log('Get Reports');
    this.staticEventsService.getReports().subscribe((rep) => {
      this.reports = rep as Report[];
      // eslint-disable-next-line no-debugger
      debugger;
      this.reports.forEach(r => {
        r.subreport.forEach(s => { console.log('subreport = ' + s.categoryId);});});
      console.log('show me the god damn reports = ' + this.reports);
    });

在此处输入图像描述

我已经声明了这些类来处理传入的数据:

export class Report {
  month: number;
  subreport: SubReport[];
  };

export class SubReport {
  categoryId: number;
  occurrences: number;
}
2个回答

Javascript 区分大小写。我发现您使用了 subreport ,它应该是 subReport ,并且大写 R

Arun Kamalanathan
2021-06-16

错误来自‘r.subreport.forEach’。按照您的调试图像,它应该是‘r.subReport.forEach’(R 而不是 r)。

我猜您必须更新您的报告类型,或更新服务响应以匹配您的报告类型。

hoangdv
2021-06-16