我已经在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');
}
答案 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'
}
})