首页 > 解决方案 > 如何在角度或打字稿中迭代后端 api 映射响应

问题描述

我有一个 api,它将返回地图响应,如 .

{thomas: 3, test70: 2, tim: 2, elin: 2, sumeet12: 1}

我想以角度进行迭代,但不幸的是我在尝试这个时遇到了错误。

错误得到::

此表达式不可调用。类型“号码”没有呼叫签名.ts(2349)

  this.testObject.forEach((value: number, key: string) => {
    console.log(key, value);
});

迭代 Typescript Map

但我可以使用下面的代码在 html 中迭代..

在 html 中

  <div *ngFor="let item of testObject | keyvalue: originalOrder; let i=index">
    <span *ngIf="i<3">
      Key: <b>{{item.key}}</b> and Value: <b>{{item.value}}</b>

    </span>   
  </div>

在 .ts 文件中

testObject: { [key: string]: number };
showresult: any;

  getQuizResult(id){
    this.service.getResult(id).subscribe((stndrdResp: Response) => {
      this.showresult = stndrdResp.obj; // this will return a object
      this.testObject = this.showresult; // assigning the key value response to testObject
      });
  }

基本上我想在 getQuizResult 中迭代后端 api 响应,以便我可以执行一些操作。感谢您的宝贵建议。

标签: angulartypescript

解决方案


我认为这就是你要找的东西:https ://stackoverflow.com/a/24440475/12193298

一条评论; 在您上面的一个代码中,您有key: string第二个参数,但在 forEach 回调中,第二个是index,它始终是一个数字。所以应该是这样的:

this.testObject.forEach((value: number, index: number) => {
    console.log(index, value);
});

推荐阅读