angular - 如何在角度或打字稿中迭代后端 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);
});
但我可以使用下面的代码在 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 响应,以便我可以执行一些操作。感谢您的宝贵建议。
解决方案
我认为这就是你要找的东西:https ://stackoverflow.com/a/24440475/12193298
一条评论; 在您上面的一个代码中,您有key: string
第二个参数,但在 forEach 回调中,第二个是index
,它始终是一个数字。所以应该是这样的:
this.testObject.forEach((value: number, index: number) => {
console.log(index, value);
});
推荐阅读
- javascript - 当值相同时,Javascript按值和键对对象进行排序
- c++ - 使用 std::function 保证没有动态内存的最小语法
- javascript - Javascript计算器如何允许多个点
- xml - 在 Groovy 中使用 XmlSlurper 删除 XML 中的节点
- python - 使用线程的导入 Python 模块/库中的错误/异常处理
- powershell - 如何在 Word 文档中使用 PowerShell 更新图表的 ALT 标记
- node.js - 从二进制文件中的特定行读取数据
- image - Android studio:如何将图像从一个片段传递到另一个片段?按下新闻时,该人将能够看到相同的新闻图像
- python - 如何根据数据框中的文件名拆分图像文件夹?
- python - 如何使用 spacy 计算一列每一行的单词数?