微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TypeScript 如何循环遍历对象数组

如何解决TypeScript 如何循环遍历对象数组

我目前正忙于一个 Angular 项目,我从 API 接收一个包含一组对象的对象。

“reportData”是通过我的服务作为参数发送到 API 的对象。

从 API 发回的数据示例:

Example of data retrieved

我想遍历数组并将产品名称推送到数组中,并且与 averageQuantityOrdered 相同,但我不知道如何遍历数组并获取值。

让我感到困惑的一件事是,当您查看附加的屏幕截图时,结果似乎是一个包含对象数组的对象。我认为这就是我不能循环遍历它的原因,因为从技术上讲,它是一个对象而不是数组。

我尝试了这样的操作(retrievedData 是对象数组),但随后出现错误“无法读取未定义的属性 'forEach'”:

retrievedData: any;

this.retrievedData.array.forEach(element => {
          this.productNames.push(element.ProductName);
        });

我使用服务来检索数据:

onSubmit(form:NgForm)
  {

    this.service.postReportData().subscribe(
      res => {
        this.retrievedData = res;
        console.log(this.retrievedData);
      },err => {
        console.log(err);
      }
    );

  }

任何帮助将不胜感激!

解决方法

所以你收到的是一个包含对象数组的对象

你的 res 应该是类型

type Item = {
  ProductName: string;
  AverageQuantityOrdered: number;
  ProductOrders: unknown[];
}

type RetrievedData = {
  reportData: Item[];
}

因此您可以将 RetrievedData 设置为 retrievedData 变量的类型

retrievedData: RetrievedData

而不是any

然后 retrievedData.reportData 会给你数组。

,

感谢大家的宝贵意见!

我使用以下代码使其工作:

onSubmit(form:NgForm)
  {
    this.service.postReportData().subscribe(
      res => {
        this.retrievedData = res;

        this.retrievedData.reportData.forEach(function (item) {
          console.log(item);
          console.log(item.ProductName);
          console.log(item.AverageQuantityOrdered);
        });

      },err => {
        console.log(err);
      }
    );

  }

由于 reportData 包含对象数组,我必须遍历它而不是检索数据。

再次感谢大家,感谢您的帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。