首页 > 解决方案 > 以角度 4 过滤数组对象的数组

问题描述

我在 Angular 4 应用程序中编写了一个属性,它返回一个数组数组。我需要从该集合中的一个数组中过滤出一个元素。当我尝试应用过滤器时,其余的数组将被省略。我相信这是由于我应用过滤器的方式。它唯一返回我的假设对象。有人可以纠正我哪里出错了。在下面的示例中,假设输入是一个数组对象,其中包含多个对象。

例如它包含

assumptions
currentCaptiveBalanceSheets
minimumCaptitalContributions
specialAccountingRules

假设输入接口

 export interface AssumptionsInput  {

        assumptions: ModelingAssumption[];
        specialAccountRules: ModelingAssumption[];
        minimumCapitalContributions: ModelingAssumption[];
        currentCaptiveBalanceSheets: ModelingAssumption[];
    }


 export interface ModelingAssumption  {

        fieldInfo: FieldInfo;
        value: FieldValue;
    }

我需要能够返回上面的所有数组对象,除了在称为 fyDate 的假设中过滤一个元素。

原始代码

get assumptionsInput() {
    return this._assumptionsService.run.assumptionsInput;
  }

修改后的代码

get assumptionsInput() {
    return this._assumptionsService.run.assumptionsInput.assumptions.filter(x=> x.fieldInfo.key === 'fyDate');
  }

标签: angular

解决方案


如果要过滤假设输入,必须像

assumptionsInput.filter(x=>x.assumptions.fieldInfo.key=='fyDate')

如果你想显示所有的假设输入,但在假设中​​只有那些带有条件的值

let filteredAssumptions=assumptionsInput.map((a)=>{
   return {
       ...a,
       assumptions:a.assumptions.filter(a=>a.fieldInfor.key=='fyDate'
   }
})

推荐阅读