如何做两个不同的数组导致对angular6的操作

时间:2018-11-24 14:45:44

标签: angular typescript rxjs angular6 rxjs6

这是产品服务回复。

productServiceResponse = [
  {productOrderId:108898,productStatus:"C",productId:'4'},
  {productOrderId:108899,productStatus:"P",productId:'2'},
];

使用常量值currentProductStatus =“ C”;

在产品服务响应中,我需要使用上述常量值来查找当前产品并采用产品,并采用产品ID。

所以我在这里做了。在这里,我已经做了当前产品的索引,而不是需要在dynamicllay中从集合中查找它。

this.productServiceResponse[0].productStatus

//检查当前产品

  const ProductCode =
            this.productServiceResponse[0].productStatus ===
            this.currentProductStatus
              ? this.productServiceResponse[0].productId.toString()
              : null;

一旦获得当前productId。

我已经在另一个收藏集中对其进行了检查。

      productTypes =[
    {id: "1", name: "Laptop"},
    {id: "2", name: "Mobile"},
    {id: "3", name: "headphone"},
    {id: "4", name: "Cameras"}
      ];

从产品类型集合中,我已经匹配了上述结果中的产品ID。

   this.currentProduct = this.productTypes.find(product=>product.id ===ProductCode).name;

最终o / p成为相机。

我有o / p:但是我需要单行过滤而不是两个变量的查询。

任何人都可以重构它。

演示:filter

1 个答案:

答案 0 :(得分:2)

尝试这种方式

this.productTypes.find(product=>
    product.id === productServiceResponse.find(psr=>psr.productStatus === this.currentProductStatus).productID
    ).name 

请注意,我在手机check this中键入了此内容