首页
学习
活动
专区
圈层
工具
发布

养生场
EN

Stack Overflow用户
提问于 2020-05-08 11:53:28
回答 1查看 25关注 0票数 0

我有一个像这样的儿子:

代码语言:javascript
复制
[ {
    "id": 1,
    "libraryName": "lib1",
    "bookName": "book1",
    "bookPrice": 250.45,
    "unitSold": 305
},
{
    "id": 2,
    "libraryName": "lib1",
    "bookName": "book2",
    "bookPrice": 450.45,
    "unitSold": 150
},
{
    "id": 3,
    "libraryName": "lib1",
    "bookName": "book3",
    "bookPrice": 120.25,
    "unitSold": 400
}]

我希望在一个列表中恢复这个json的所有bookNames,而不需要创建getBookNames方法(因为我希望为json的任何字段提供一种标准的方法),因此,在getBookNames中我使用了:

代码语言:javascript
复制
  sales:any;
  getSale () {
  this.service.getSales().subscribe(data=> {this.sales = data,
  console.log(this.sales.bookName)
  })
  }

它给了我控制台中未定义的对象!如何在不创建方法getBookNames()的情况下解决这个问题?

这是我的课:

代码语言:javascript
复制
export interface Sale {
id: number
bookname : string
Libraryname: string
Bookprice : number
Unitsold : number
}

这是我的服务:

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Sale } from './Sale';
@Injectable({
providedIn: 'root'
})
export class MyserviceService {

constructor(private http: HttpClient) { }

getSales () {
return this.http.get<Sale>("http://localhost:8081/sales/all")
}

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-08 11:58:49

从API获得的数据是一个数组。因此,可以使用数组map()函数从元素中获取所有属性的列表。尝试以下几点

代码语言:javascript
复制
sales: any;
unitsSold = [];

getSale () {
  this.service.getSales().subscribe(data=> {
    this.sales = data,
    console.log(data.map(item => item.bookName)); // <-- output: ['book1', 'book2', 'book3'];
    console.log(data.map(item => item.id)); // <-- output: [1, 2, 3];
    this.unitsSold = data.map(item => item.unitSold); // <-- [305, 150, 400]
  });
}

我看不出这里有什么可以恢复的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61678566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档