Angular 6无法从数组中获取项目

时间:2018-12-04 08:44:48

标签: javascript angular typescript angular-http

我正在构建显示亚马逊产品的应用程序:

showProducts(){
    this.search.getProducts().subscribe
    ((data: any) => {
        this.list = data['hydra:member'];
        this.prices = data.lowestPrices.Amazon.newItem;
        console.log('Objects', this.list);
        console.log('Prices', this.prices);
    });

}

控制台中的this.list:

enter image description here

this.prices在控制台中:

  

无法读取未定义的属性“ Amazon”

如何正确获得亚马逊的最低价格?

2 个答案:

答案 0 :(得分:2)

您正在访问数组[]。数组具有索引[0]->[n]

在您的示例中为

showProducts(){
 this.search.getProducts().subscribe
 ((data: any) => {
  this.list = data['hydra:member'];
  this.prices = data['hydra:member'][0].lowestPrices.Amazon.newItem;
  console.log('Objects', this.list);
  console.log('Prices', this.prices);
});

第一项。

您必须为每种信息的每个数据项编写一个循环

答案 1 :(得分:1)

使用Array map遍历数组并填充属性 例如:

this.prices = data['hydra:member'].map(elem => elem.lowestPrices.Amazon.newItem;);