【问题标题】:How to get data from array object in angular typescript?如何从角度打字稿中的数组对象获取数据?
【发布时间】:2020-04-20 11:28:03
【问题描述】:

我正在调用一个rest api,它以对象格式的json数组返回数据,如下所示

现在,当我从我的 typecsript 代码中调用这个 rest api 并在收到的控制台数据上打印时,我得到了这个

gameRecord: Fifa = new Fifa(); // 这是在 ts 类中全局定义的

this.fifaService.fetchGameRecord(gameId).subscribe(
          data => {
            this.gameRecord = data;
            console.log(this.gameRecord);
          }
        );

现在我想从这个对象中获取 wonBy、kashScore 属性值。

但我在控制台上收到未定义的错误,我不知道为什么

gameRecord: Fifa = new Fifa();


this.fifaService.fetchGameRecord(gameId).subscribe(
      data => {
        this.gameRecord = data;
        console.log(this.gameRecord.kashScore);
      }
    );

这里是代码定义,

export class Fifa {

    gameId: number;
    kashScore: number;
    samScore: number;
    wonBy: string;
    createUserId: number;
    lastModifiedUserId: number;
    creationDate: Date;
    lastModifiedDateTime: Date;
    sessionId: number;
}

还有我的服务文件代码

fetchGameRecord(gameId: number): Observable<Fifa>{
    const fifaUrl = `${this.baseUrl}/getGameDetail/${gameId}`;
    return this.httpClient.get<Fifa>(fifaUrl);
  }

【问题讨论】:

    标签: javascript angular typescript observable httpclient


    【解决方案1】:

    游戏记录:国际足联 = 新国际足联();

    this.fifaService.fetchGameRecord(gameId).subscribe(
          data => {
            this.gameRecord = data[0]; // <= data is an array
            console.log(this.gameRecord.kashScore);
          }
        );
    

    【讨论】:

      【解决方案2】:

      这里的数据是Fifa对象类型的数组,而不是单个对象

      所以你可以像this.gameRecord[0].kashScore一样访问它 此外,如果您希望数组中有更多记录,您可能需要更新 gameRecord: Fifa = new Fifa() 此语句,因为 this.gamerecord 将是对象数组,否则您每次都可以访问数组的第 0 个元素

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-05
        • 2018-07-03
        • 2021-11-02
        • 1970-01-01
        • 1970-01-01
        • 2020-08-04
        • 1970-01-01
        相关资源
        最近更新 更多