在角度4中过滤数组对象的数组

时间:2018-07-23 20:59:39

标签: angular

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

例如包含

assumptions
currentCaptiveBalanceSheets
minimumCaptitalContributions
specialAccountingRules

AssumptionsInput接口

 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');
  }

1 个答案:

答案 0 :(得分:0)

如果要过滤假设输入,必须类似于

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

如果要显示所有假设输入,但仅在假设中显示带有条件的值

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