如何获得具有其ID的对象?

时间:2019-09-17 21:01:10

标签: angular typescript

我正在创建一个美食应用,我们可以自定义美食(例如地铁)。我将商品(例如三明治或萨拉米香肠)及其配料(例如芥末或烧烤)保存在购物车中,以感谢他们的ID。

我的购物车中的数据被保存为:

menuSelection: MenuSelection = {
  id: 0,
  supp: [1123],
};

菜单如下:

  products: Menu[] = [
    {
        id: 0, name: 'Salami', price: 8, hour: null,
        supp:[
          { id: 1123, name: 'fromage', price: 5, hour: null },
          { id: 11234, name: 'bbq', price: 10, hour: null },
        ],
    },
  ];

所以在我的购物车中,我只有身份证,我想获取食物的对象(物品和配料),我该怎么做?

3 个答案:

答案 0 :(得分:1)

因此,您有一个id,并在products数组中寻找相关产品?应该差不多了

findProductById = (id: number) => this.products.find(product => product.id === id);

答案 1 :(得分:1)

您的购物车中有/C个对象的数组。

要从每个ErrorLevel获取产品和成分,您可以尝试以下方法。

您没有提到要如何存储结果,因此我只是在屏幕上显示它们。您可以根据需要将它们插入数组或对象中。

MenuSelection

答案 2 :(得分:1)

要从菜单中获取产品,您可以使用

findProductById = (id: number) => this.products.filter(product => product.id === id);

如果您还想研究其中的成分

findProductById = (id: number) => {
   this.products.filter(
      product => 
      product.id === id || 
      product.supp.filter(ingredients => ingredients.id === id).length
   );
}

product.supp.filter(ingredients => ingredients.id === id).length将返回长度,如果发现长度不为0,则返回false,否则,如果发现匹配,则长度大于0。

如果此条件(product.id === id)为真,则在顶层找到产品。