Angular 6 не может получить элемент из массива - PullRequest
0 голосов
/ 04 декабря 2018

Я создаю приложение, которое показывает продукты Amazon:

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.цены в консоли:

Невозможно прочитать свойство 'Amazon' из неопределенного

Как правильно получить самые низкие цены на Amazon?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Используйте Карта массива , чтобы выполнить итерацию по массиву и заполнить ваши свойства. Например:

this.prices = data['hydra:member'].map(elem => elem.lowestPrices.Amazon.newItem;);
0 голосов
/ 04 декабря 2018

Вы обращаетесь к массиву [].Массивы имеют индексы [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);
});

для первого элемента.

Вам придется написать цикл для каждого элементаданные для каждой информации

...