当前位置: 首页 > 知识库问答 >
问题:

如何在角或打字稿中迭代后端api映射响应

裴经义
2023-03-14

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

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

我想迭代角度,但不幸的是,我在尝试时出错了。

错误::

此表达式不可调用。输入数字没有呼叫signatures.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
      });
  }

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

共有2个答案

何章横
2023-03-14

因为testObject是一个普通对象,而不是Map实例。您需要创建贴图对象或数组。

js prettyprint-override">const res = {thomas: 3, test70: 2, tim: 2, elin: 2, sumeet12: 1};
var arr = Object.entries(res);//[[ "thomas", 3 ]...]
var map = new Map(arr);//use arr or create a map
平学
2023-03-14

我想这就是你想要的:https://stackoverflow.com/a/24440475/12193298

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

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

 类似资料:
  • 我正在typescript中创建一个类,该类的属性是ES6(ECMAscript 2016)映射,如下所示: 如何在打字稿中声明ES6 Map类型?

  • 我有我创建的地图的地图 我尝试在第二个映射中迭代键的值。 所以它可以是这样的: key1->keya->value1 -------->键->值2 -------->键->值4 -------->KeyC->value1 我想继续多久就继续多久。 因此,我有,并尝试使用名为的值变量和增量计数器if来循环中的所有值 我不知道如何获得。我试着这样做 但这给了我信笺。 如果我执行,它会给出我想要的正确值

  • 提示:如果已知失败的表达式在法律上为null/missing,可以使用myoptionalvar!mydefault指定默认值,或者使用<#If myoptionalvar??>when-present<#else>when-missing。(这些只覆盖表达式的最后一步;要覆盖整个表达式,请使用parenthessis:(myoptionvar.foo)!mydefault,(myoptionva

  • 本文向大家介绍C++映射迭代器,包括了C++映射迭代器的使用技巧和注意事项,需要的朋友参考一下 示例 容器中第一个元素的迭代器。 如果映射对象是const限定符,则该函数返回const_iterator。否则,返回iterator。 输出: a => 200 b => 100 c => 300

  • 问题内容: 我希望能够实例化一个Typescript类,在运行时可以获取该类和构造函数的详细信息。我想编写的函数将包含类名和构造函数参数。 问题答案: 您可以尝试: 编辑 此版本可在TypeScript操场上使用,例如:

  • 我有一个string和map 的列表,如果元素列表与map的关键元素匹配,我需要用map的值替换string的值。 如何使用Java8的map()/stream()等功能而不是forEach循环来完成同样的操作?我在list和map中有大量字符串元素,需要在最后一个字符串中动态替换这些元素。