Pu sh ArrayItem из другого массива в Angular - PullRequest
0 голосов
/ 02 апреля 2020

Я нахожусь в ситуации, когда мне нужно извлечь sh элемент массива из другого массива.

export class Products {
    ProductCat: string;
    Products: number;
    Sold: number;
}

export class ProdCats {
    Id: number;
    Category: string;
}

prodCats = ProdCats[];
products Products[];

//I get all the product categories here
this.prodCats = await this.service.getProdCats().toPromise();

now I want to fill my "products" array like this:
for (let i = 0; i < this.prodCats.length; i++) {
  var item = {
    "ProductCat": this.prodCats[i].Category,
    "Products": 0, //want to add default value 0 later on I will update these
    "Sold": 0 //want to add default value 0 later on I will update these
  };
  this.products.push(item);
}

Я не знаю, является ли этот подход эффективным, но он не дает мне ошибка:

core.js:5882 ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'push' of undefined

Посоветуйте, пожалуйста, как этого добиться эффективным способом.

1 Ответ

0 голосов
/ 02 апреля 2020

Вы не создаете массив products. Сделайте это:

products: Products[] = [];
...