angular - 以角度 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');
}
解决方案
如果要过滤假设输入,必须像
assumptionsInput.filter(x=>x.assumptions.fieldInfo.key=='fyDate')
如果你想显示所有的假设输入,但在假设中只有那些带有条件的值
let filteredAssumptions=assumptionsInput.map((a)=>{
return {
...a,
assumptions:a.assumptions.filter(a=>a.fieldInfor.key=='fyDate'
}
})
推荐阅读
- unity3d - Adobe Animate CC 动画导出到 Unity
- agens-graph - 如何在 AgensGraph 上绑定数组值?
- javascript - JS:根据条件在for循环内分配变量值
- android - 广播接收器中的权限拒绝
- java - 没有这样的表:QuestionDB.db
- c# - 尝试激活 'xxx.Infrastructure.TagRepository' 时无法解析类型 xxx.'Infrastructure' 的服务
- sql - 为什么我们使用连接从多个表中获取数据?
- ios - 当应用程序处于后台或运行状态而不是应用程序终止时处理推送通知
- python-3.x - cairocffi 在 Ubuntu 18.04 上安装失败
- java - 防止反编译/逆向工程 Android APKs