根据特定条件过滤数组对象-typescript

时间:2020-02-13 10:32:51

标签: angular typescript linq

我要过滤data计数大于0的数组对象Failed。我下面的代码不起作用

ngOnInit()
{
  this.employeeService.getProducts().subscribe((data:any) => {
  console.log(data);

  this.products=data.Products.array.forEach(element => {
   i=>i.Failed>0
  });

  });
}

这些是产品类

export class Productlist {
    Products :Array<Products>
    Page:string
    PageSize:string       
}

export class Products{
    Platform:string
    Compliant:string
    Failed:string
}

1 个答案:

答案 0 :(得分:1)

forEach只是迭代数组中的所有元素,但根本不对数组执行任何操作(如过滤器)。

Arrays in JavaScript提供了一种特定的.filter方法。

通常,您会这样使用它:

this.products = data.Products.filter((product) => product.Failed > 0);

但是鉴于您提供的类定义,您的Failed属性包含一个字符串。我假设它包含一个数字,因此您必须先将字符串转换为数字才能使其具有可比性。

this.products = data.Products.filter((product) => Number.parseInt(product.Failed) > 0)

这还假定字符串仅包含整数值,没有浮点值。